]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
6 years agoloopback-setup: also add IP addresses to loopback devices 6179/head
Lennart Poettering [Fri, 23 Jun 2017 10:07:03 +0000 (12:07 +0200)] 
loopback-setup: also add IP addresses to loopback devices

This changes loopback setup to not only start the loopback device but
also add the relevant IP addresses to it. This way, we can synchronously
wait until that's complete, and properly guarantee that loopback setup
is complete at the time we start our first processes.

This is a semi-revert of f3fc48150bb443f5b4623a819ebc2b39971a4f66, but
heavily updated.

Fixes: #5641
6 years agotest: show debug log output during test-loopback
Lennart Poettering [Fri, 23 Jun 2017 10:06:58 +0000 (12:06 +0200)] 
test: show debug log output during test-loopback

6 years agoMerge pull request #6151 from speakinghedge/6150-LLDP-messages-containing-padding...
Lennart Poettering [Fri, 23 Jun 2017 07:57:23 +0000 (09:57 +0200)] 
Merge pull request #6151 from speakinghedge/6150-LLDP-messages-containing-padding-are-dropped

accept LLDP messages containing padding

6 years agoadd note that explains relaxed bytes-left check #6150 6151/head
hecke [Fri, 23 Jun 2017 06:55:01 +0000 (08:55 +0200)] 
add note that explains relaxed bytes-left check #6150

6 years agonspawn: make sure to send SIGTERM/SIGHUP to the main nspawn process if stubinit recei...
Lennart Poettering [Fri, 23 Jun 2017 02:20:09 +0000 (04:20 +0200)] 
nspawn: make sure to send SIGTERM/SIGHUP to the main nspawn process if stubinit receives SIGRTMIN+3 (#6167)

This code already existed in some form, however commented. Remove the
comments, as this was most likely simply a forgotten commenting for
debugging purposes.

This also extends the logic a bit, by sending SIGHUP right after the
SIGTERM, so that shells will also terminate, when PID 1 gets a
SIGRTMIN+3.

Fixes: #5711
6 years agoMerge pull request #6176 from poettering/timer-boottime-monotonic
Zbigniew Jędrzejewski-Szmek [Fri, 23 Jun 2017 01:34:39 +0000 (21:34 -0400)] 
Merge pull request #6176 from poettering/timer-boottime-monotonic

WakeSystem= and other timer fixes.

6 years agomeson: do not use path separator for target name (#6177)
Yu Watanabe [Fri, 23 Jun 2017 01:27:07 +0000 (10:27 +0900)] 
meson: do not use path separator for target name (#6177)

Fixes #6158.

6 years agomeson: install manual and unsafe tests (#6178)
Michael Biebl [Fri, 23 Jun 2017 01:23:30 +0000 (03:23 +0200)] 
meson: install manual and unsafe tests (#6178)

Always install all tests if install-tests is set to true, as they might
be useful for CI. This includes manual and unsafe tests. Install those
in subdirectories of /usr/lib/systemd/tests.

Fixes #6163.

6 years agoMerge pull request #6164 from poettering/bus-non-existant-object
Zbigniew Jędrzejewski-Szmek [Fri, 23 Jun 2017 00:56:59 +0000 (20:56 -0400)] 
Merge pull request #6164 from poettering/bus-non-existant-object

sd-bus: don't treat requests for non-existent objects as connection errors

6 years agocore: return a friendlier error for a dbus path referring to a non-existent unit 6164/head
Lennart Poettering [Wed, 21 Jun 2017 18:45:23 +0000 (20:45 +0200)] 
core: return a friendlier error for a dbus path referring to a non-existent unit

See: #6059

6 years agocore: unset sysfs path after transition to dead state (#6174)
Michal Sekletar [Fri, 23 Jun 2017 00:29:15 +0000 (02:29 +0200)] 
core: unset sysfs path after transition to dead state (#6174)

Device is gone and most likely it will get garbage collected. However in
cases when it doesn't get gc'ed (because it is referenced by some
other unit, e.g. mount from fstab) we need to unset sysfs. This is
because when device appears next time, possibly, with different sysfs
path we need to update the sysfs path. Current code could end up caching
stale sysfs path forever.

In reality this is not a problem for normal disks (unless you swap them
during system runtime). However this issue causes failures to mount
filesystems on LVM where sysfs path depends on activation
order (i.e. logical volumes from volume group that is activated first
get assigned lower dm-X numbers and corresponding syspaths).

Fixes #6126.

6 years agocore: dbus: Interpret released names properly (#6175)
Michal Koutný [Fri, 23 Jun 2017 00:26:04 +0000 (02:26 +0200)] 
core: dbus: Interpret released names properly (#6175)

When a DBus name is released, NameOwnerChanged signal contains an empty string
as new_owner. Commit bbc2908 changed interpretation of the empty string to a
valid name, which is not consistent with values that are sent by dbus-daemon.

As a side effect, this masks symptoms of systemd-logind dbus disconnections
(#2925) by completely restarting it so it can freshly reconnect to dbus.

6 years agotests: show current monotonic/boottime/realtime clock values in test-time 6176/head
Lennart Poettering [Thu, 22 Jun 2017 19:10:34 +0000 (21:10 +0200)] 
tests: show current monotonic/boottime/realtime clock values in test-time

When debugging time issues its kinda handy to have an easy way to query
the three clocks, hence let's just output them at the beginning of
test-time.

6 years agotimer: make sure we use the right monotonic timestamp
Lennart Poettering [Thu, 22 Jun 2017 19:04:20 +0000 (21:04 +0200)] 
timer: make sure we use the right monotonic timestamp

This reworks timer_enter_waiting() in a couple of ways in order to clean
it up a bit and fix #5629.

Most importantly, we previously we initialized ts_monotonic to either
the current time in CLOCK_MONOTONIC or in CLOCK_BOOTTIME, depending on
t->wake_system. Then given specific conditions we'd use this time as
base for our timers. And afterwards, if t->wake_system was on we'd
convetr the resulting value from CLOCK_MONOTONIC to CLOCK_BOOTTIME again
— which of course is wrong since we already were in CLOCK_BOOTTIME! This
fixes this logic, by using a triple timestamp so that we always have the
right base around, and initially only calculate in CLOCK_MONOTONIC and
only convert as last step.

Conversion between the clocks is now done with the generic
usec_shift_clock(), and additions via usec_add() making these
calculations a bit safer.

Fixes: #5629
6 years agotimer: convert property_get_next_elapse_monotonic() to use usec_shift_clock()
Lennart Poettering [Thu, 22 Jun 2017 18:59:48 +0000 (20:59 +0200)] 
timer: convert property_get_next_elapse_monotonic() to use usec_shift_clock()

Let's use the generic clock shifting logic here.

6 years agotime-util: add new call usec_shift_clock() for converting times between clocks
Lennart Poettering [Thu, 22 Jun 2017 18:52:23 +0000 (20:52 +0200)] 
time-util: add new call usec_shift_clock() for converting times between clocks

We use that quite often, let's implement one clean version of it.

6 years agotime-util: rename usec_sub() to usec_sub_signed() and add usec_sub_unsigned()
Lennart Poettering [Thu, 22 Jun 2017 18:49:12 +0000 (20:49 +0200)] 
time-util: rename usec_sub() to usec_sub_signed() and add usec_sub_unsigned()

Quite often we just want to subtract two normal usec_t values, hence
provide an implementation for that.

6 years agomkosi: order package list alphabetically again
Lennart Poettering [Thu, 22 Jun 2017 18:48:18 +0000 (20:48 +0200)] 
mkosi: order package list alphabetically again

6 years agodissect: when dissecting block devices, ignore weird MMC RPMB partitions (#6165)
Lennart Poettering [Thu, 22 Jun 2017 15:40:50 +0000 (17:40 +0200)] 
dissect: when dissecting block devices, ignore weird MMC RPMB partitions (#6165)

For now, let's just special-case this in the sources. If more partition
types like this show up we should probably find some other solution.

Fixes: #5806
6 years agomkosi: install libidn2 in the final system (#6173)
Zbigniew Jędrzejewski-Szmek [Thu, 22 Jun 2017 13:23:29 +0000 (09:23 -0400)] 
mkosi: install libidn2 in the final system (#6173)

Recent systemd compiled in a build root which had libidn2-devel installed would
not run in the default installation root which had just libidn and did not have
libidn2. Since a8a2a0ed64f727c82e libidn2-devel (or equivalent) is installed in
the build root. Normally, since we install systemd in the installation root,
all dependencies that are needed for the compiled systemd to run are present,
but libidn2 is a new dependency, so the distro packages would just pull in
libidn, and not libidn2.

Temporily add libdn2 to explicitly specified Packages. We can remove that once
distro-compiled systemds have moved to libind2.

6 years agoMerge pull request #6095 from fsateler/machines-mount
Lennart Poettering [Thu, 22 Jun 2017 13:21:57 +0000 (15:21 +0200)] 
Merge pull request #6095 from fsateler/machines-mount

nspawn: convert var-lib-machines.mount to an automount

6 years agoMerge pull request #6170 from whot/master
Lennart Poettering [Thu, 22 Jun 2017 13:14:18 +0000 (15:14 +0200)] 
Merge pull request #6170 from whot/master

Extend the joystick detection

6 years agolog: pass the correct length to vsnprintf (#6168)
Evgeny Vereshchagin [Thu, 22 Jun 2017 01:10:29 +0000 (04:10 +0300)] 
log: pass the correct length to vsnprintf (#6168)

This prevents log_object_internalv from corrupting the stack.
Closes #6147.

Many thanks to Walter Doekes for the code review.

6 years agoudev: always consider devices with joystick axes/buttons as joystick 6170/head
Peter Hutterer [Wed, 21 Jun 2017 23:19:32 +0000 (09:19 +1000)] 
udev: always consider devices with joystick axes/buttons as joystick

Even when they don't have an x/y axis.

https://github.com/systemd/systemd/issues/6137

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoudev: consider a device with BTN_TRIGGER_HAPPY as joystick
Peter Hutterer [Wed, 21 Jun 2017 23:11:15 +0000 (09:11 +1000)] 
udev: consider a device with BTN_TRIGGER_HAPPY as joystick

These buttons were added specifically for joysticks with lots of buttons, no
other device should be using them. See kernel commit
cf2f765f18960 "HID: handle joysticks with large number of buttons"

We only test for BTN_TRIGGER_HAPPY (an alias for BTN_TRIGGER_HAPPY1) here, a
device that sets buttons 2 and above but doesn't set 1 is considered buggy.

https://github.com/systemd/systemd/issues/6137

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agomachined: add RequiresMountsFor=/var/lib/machines 6095/head
Felipe Sateler [Fri, 16 Jun 2017 22:22:50 +0000 (18:22 -0400)] 
machined: add RequiresMountsFor=/var/lib/machines

Since any part of the path could be remote mounted, make sure they are
before starting machined

6 years agonspawn: hook var-lib-machines.mount to machines.target and remote-fs.target
Felipe Sateler [Wed, 21 Jun 2017 20:04:38 +0000 (16:04 -0400)] 
nspawn: hook var-lib-machines.mount to machines.target and remote-fs.target

/var can be on a remote filesystem, thus hooking it to local-fs.target is not correct.

Also, only install the mount unit when machined is enabled, because
machined is the one managing the underlying device, and thus makes no
sense without machined.

Fixes #1175

6 years agosd-bus: make sure propagate all errors with vtable callbacks back to clients
Lennart Poettering [Wed, 21 Jun 2017 18:42:28 +0000 (20:42 +0200)] 
sd-bus: make sure propagate all errors with vtable callbacks back to clients

Previously we'd propagate errors returned by user callbacks configured
in vtables back to the users only for method handlers and property
get/set handlers. This does the same for child enumeration and when we
check whether a fallback unit exists.

Without this the failure will be treated as a non-recoverable connection
error and result in connection termination.

Fixes: #6059
6 years agoonly check signature job error if signature job exists (#6118)
tblume [Wed, 21 Jun 2017 17:29:58 +0000 (19:29 +0200)] 
only check signature job error if signature job exists (#6118)

otherwise it will segfault when accessing signature jobs error status

6 years agomeson: add -pthreads and more libs when -Dlink-udev-shared=false (#6159)
Zbigniew Jędrzejewski-Szmek [Wed, 21 Jun 2017 10:05:15 +0000 (06:05 -0400)] 
meson: add -pthreads and more libs when -Dlink-udev-shared=false (#6159)

Three binaries would fail to link when ld.bfd was used and link-udev-shared was
false. Add -pthreads (again) to the failing binaries and synchronize the
dependency list between libsystemd-shared .a and .so versions.
Apart from allowing the build to succeed, this shouldn't have much effect becuase
systemd-networkd was already using pthreads.

Fixes #5828.

6 years agohwdb: add axis range corrections for Dell Latitude E7470 (#6156)
Amir Pakdel [Wed, 21 Jun 2017 00:23:16 +0000 (20:23 -0400)] 
hwdb: add axis range corrections for Dell Latitude E7470 (#6156)

6 years agoHACKING: update qemu-kvm instructions (#6138)
AsciiWolf [Tue, 20 Jun 2017 21:16:16 +0000 (23:16 +0200)] 
HACKING: update qemu-kvm instructions (#6138)

6 years agogithub: how to report bugs for older distribution versions (#6146)
Lukáš Nykrýn [Tue, 20 Jun 2017 18:20:25 +0000 (20:20 +0200)] 
github: how to report bugs for older distribution versions (#6146)

6 years agoMerge pull request #6113 from keszybz/shell-quoting
Lennart Poettering [Tue, 20 Jun 2017 18:17:03 +0000 (20:17 +0200)] 
Merge pull request #6113 from keszybz/shell-quoting

Use "dollar-single-quotes" to escape shell-sensitive strings

6 years agoUse "dollar-single-quotes" to escape shell-sensitive strings 6113/head
Zbigniew Jędrzejewski-Szmek [Sun, 11 Jun 2017 19:24:07 +0000 (15:24 -0400)] 
Use "dollar-single-quotes" to escape shell-sensitive strings

Also called "ANSI-C Quoting" in info:(bash) ANSI-C Quoting.

The escaping rules are a POSIX proposal, and are described in
http://austingroupbugs.net/view.php?id=249. There's a lot of back-and-forth on
the details of escaping of control characters, but we'll be only using a small
subset of the syntax that is common to all proposals and is widely supported.
Unfortunately dash and fish and maybe some other shells do not support it (see
the man page patch for a list).

This allows environment variables to be safely exported using show-environment
and imported into the shell. Shells which do not support this syntax will have
to do something like
    export $(systemctl show-environment|grep -v '=\$')
or whatever is appropriate in their case. I think csh and fish do not support
the A=B syntax anyway, so the change is moot for them.

Fixes #5536.

v2:
- also escape newlines (which currently disallowed in shell values, so this
  doesn't really matter), and tabs (as $'\t'), and ! (as $'!'). This way quoted
  output can be included directly in both interactive and noninteractive bash.

6 years agoaccept LLDP messages containing padding
hecke [Mon, 19 Jun 2017 23:12:30 +0000 (01:12 +0200)] 
accept LLDP messages containing padding

6 years agogithub: tweak the issue template a bit more
Lennart Poettering [Mon, 19 Jun 2017 10:15:44 +0000 (12:15 +0200)] 
github: tweak the issue template a bit more

6 years agogithub: tweak the issue template a bit, comment more
Lennart Poettering [Mon, 19 Jun 2017 10:13:28 +0000 (12:13 +0200)] 
github: tweak the issue template a bit, comment more

6 years agojob: Ensure JobRunningTimeoutSec= survives serialization (#6128)
Michal Koutný [Sun, 18 Jun 2017 15:51:17 +0000 (17:51 +0200)] 
job: Ensure JobRunningTimeoutSec= survives serialization (#6128)

This is a fixup of commit a2df3ea4ae058693bc7bf203d144e8af3c9493d2.
When there is a running job with JobRunningTimeoutSec= and systemd serializes
its state (e.g. during daemon-reload), the timer event source won't be properly
restored in job_coldplug().
Thus save and serialize begin_running_usec too and reinitialize the timer based
on that value.

6 years agoudev: use interface before the string that interface points to is freed by device_add...
Evgeny Vereshchagin [Sun, 18 Jun 2017 09:31:30 +0000 (12:31 +0300)] 
udev: use interface before the string that interface points to is freed by device_add_property_internal (#6105)

This prevents udev from reading the data after freeing it.

See https://github.com/systemd/systemd/issues/6040#issuecomment-306589836
==264== Invalid read of size 1
==264==    at 0x4C2E112: strlen (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==264==    by 0x5943EBD: strdup (in /usr/lib/libc-2.25.so)
==264==    by 0x13E263: device_add_property_aux (sd-device.c:122)
==264==    by 0x14788C: device_add_property_internal (sd-device.c:150)
==264==    by 0x14788C: device_rename (device-private.c:786)
==264==    by 0x120DB6: udev_device_rename (libudev-device-private.c:213)
==264==    by 0x120DB6: udev_event_execute_rules (udev-event.c:895)
==264==    by 0x120DB6: worker_spawn (udevd.c:456)
==264==    by 0x1216E5: event_run (udevd.c:584)
==264==    by 0x1216E5: event_queue_start (udevd.c:823)
==264==    by 0x122213: on_uevent (udevd.c:927)
==264==    by 0x141F2F: source_dispatch (sd-event.c:2272)
==264==    by 0x142D52: sd_event_dispatch (sd-event.c:2631)
==264==    by 0x142D52: sd_event_run (sd-event.c:2690)
==264==    by 0x142D52: sd_event_loop (sd-event.c:2710)
==264==    by 0x1159CB: run (udevd.c:1643)
==264==    by 0x1159CB: main (udevd.c:1772)
==264==  Address 0x7b251a0 is 0 bytes inside a block of size 5 free'd
==264==    at 0x4C2C14B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==264==    by 0x13E2A2: freep (alloc-util.h:57)
==264==    by 0x13E2A2: device_add_property_aux (sd-device.c:111)
==264==    by 0x147873: device_add_property_internal (sd-device.c:150)
==264==    by 0x147873: device_rename (device-private.c:781)
==264==    by 0x120DB6: udev_device_rename (libudev-device-private.c:213)
==264==    by 0x120DB6: udev_event_execute_rules (udev-event.c:895)
==264==    by 0x120DB6: worker_spawn (udevd.c:456)
==264==    by 0x1216E5: event_run (udevd.c:584)
==264==    by 0x1216E5: event_queue_start (udevd.c:823)
==264==    by 0x122213: on_uevent (udevd.c:927)
==264==    by 0x141F2F: source_dispatch (sd-event.c:2272)
==264==    by 0x142D52: sd_event_dispatch (sd-event.c:2631)
==264==    by 0x142D52: sd_event_run (sd-event.c:2690)
==264==    by 0x142D52: sd_event_loop (sd-event.c:2710)
==264==    by 0x1159CB: run (udevd.c:1643)
==264==    by 0x1159CB: main (udevd.c:1772)
==264==  Block was alloc'd at
==264==    at 0x4C2AF1F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==264==    by 0x5943EC9: strdup (in /usr/lib/libc-2.25.so)
==264==    by 0x13E263: device_add_property_aux (sd-device.c:122)
==264==    by 0x143B45: device_add_property_internal (sd-device.c:150)
==264==    by 0x143B45: device_amend.lto_priv.235 (device-private.c:454)
==264==    by 0x1387B7: device_append (device-private.c:516)
==264==    by 0x1387B7: device_new_from_nulstr (device-private.c:620)
==264==    by 0x1387B7: udev_device_new_from_nulstr (libudev-device-private.c:268)
==264==    by 0x1387B7: udev_monitor_receive_device (libudev-monitor.c:682)
==264==    by 0x11FC69: worker_spawn (udevd.c:509)
==264==    by 0x1216E5: event_run (udevd.c:584)
==264==    by 0x1216E5: event_queue_start (udevd.c:823)
==264==    by 0x122213: on_uevent (udevd.c:927)
==264==    by 0x141F2F: source_dispatch (sd-event.c:2272)
==264==    by 0x142D52: sd_event_dispatch (sd-event.c:2631)
==264==    by 0x142D52: sd_event_run (sd-event.c:2690)
==264==    by 0x142D52: sd_event_loop (sd-event.c:2710)
==264==    by 0x1159CB: run (udevd.c:1643)
==264==    by 0x1159CB: main (udevd.c:1772)
==264==

6 years agopid1: properly encode infinity when writing CPUQuota snippet (#6141)
Zbigniew Jędrzejewski-Szmek [Sun, 18 Jun 2017 09:18:41 +0000 (05:18 -0400)] 
pid1: properly encode infinity when writing CPUQuota snippet (#6141)

We would write
  [Slice]
  CPUQuota=1844674407370955%
which is (numerically) correct, but it seems better to just write
  [Slice]
  CPUQuota=
which is interpreted as USEC_INFINITY by the parser in config_parse_cpu_quota().

Fixes #5965.

6 years agoMerge pull request #6064 from keszybz/lock-session
Lennart Poettering [Sun, 18 Jun 2017 09:16:53 +0000 (11:16 +0200)] 
Merge pull request #6064 from keszybz/lock-session

Improvements to loginctl operating on current session

6 years agoMerge pull request #6140 from keszybz/rm-rf-symlink
Lennart Poettering [Sun, 18 Jun 2017 09:15:13 +0000 (11:15 +0200)] 
Merge pull request #6140 from keszybz/rm-rf-symlink

Allow symlinks to root to be removed

6 years agoMerge pull request #6142 from keszybz/man-runtimedirectorymode
Djalal Harouni [Sun, 18 Jun 2017 07:36:50 +0000 (09:36 +0200)] 
Merge pull request #6142 from keszybz/man-runtimedirectorymode

man: describe RuntimeDirectoryMode=

6 years agoresolved: ignore DNSSEC= option when resolved is built without gcrypt (#6084)
Yu Watanabe [Sat, 17 Jun 2017 20:22:32 +0000 (05:22 +0900)] 
resolved: ignore DNSSEC= option when resolved is built without gcrypt (#6084)

Fixes #5583.

6 years agoman: describe RuntimeDirectoryMode= 6142/head
Zbigniew Jędrzejewski-Szmek [Sat, 17 Jun 2017 19:23:02 +0000 (15:23 -0400)] 
man: describe RuntimeDirectoryMode=

Fixes #5509.

6 years agobasic/rm-rf: allow a symlink to / to be removed 6140/head
Zbigniew Jędrzejewski-Szmek [Sat, 17 Jun 2017 16:41:08 +0000 (12:41 -0400)] 
basic/rm-rf: allow a symlink to / to be removed

We open the target path with O_DIRECTORY|O_NOFOLLOW, and if that doesn't work,
we call unlink() on the path. In neither case we will follow the symlink, so
we can relax our check to also not follow symlinks.

Fixes #5864.

6 years agobasic/path-util: allow flags for path_equal_or_files_same
Zbigniew Jędrzejewski-Szmek [Sat, 17 Jun 2017 16:37:16 +0000 (12:37 -0400)] 
basic/path-util: allow flags for path_equal_or_files_same

No functional change, just a new parameters and the tests that
AT_SYMLINK_NOFOLLOW works as expected.

6 years agoudev-builtin-blkid: Use _cleanup_blkid_free_probe_ to free probe (#6108)
Nate Clark [Fri, 16 Jun 2017 20:44:57 +0000 (16:44 -0400)] 
udev-builtin-blkid: Use _cleanup_blkid_free_probe_ to free probe (#6108)

Use the _cleanup_blkid_free_probe_ to guarantee that the
blkid_probe will be freed when builtin_blkid exits.

6 years agoMerge pull request #6134 from pfl/radv_fixes
Lennart Poettering [Fri, 16 Jun 2017 20:43:36 +0000 (22:43 +0200)] 
Merge pull request #6134 from pfl/radv_fixes

Router Advertisement fixes

6 years agoMerge pull request #6133 from wbx-github/idn_config
Lennart Poettering [Fri, 16 Jun 2017 20:06:48 +0000 (22:06 +0200)] 
Merge pull request #6133 from wbx-github/idn_config

make IDN support conditional

6 years agomeson: add -Didn=yes|no option 6133/head
Zbigniew Jędrzejewski-Szmek [Fri, 16 Jun 2017 13:16:28 +0000 (09:16 -0400)] 
meson: add -Didn=yes|no option

6 years agoMake IDN support conditional
Waldemar Brodkorb [Thu, 15 Jun 2017 15:44:59 +0000 (17:44 +0200)] 
Make IDN support conditional

[zj: rename HAVE_IDN to ENABLE_IDN]

6 years agonetworkd-address: Use DIV_ROUND_UP for consistency 6134/head
Patrik Flykt [Fri, 16 Jun 2017 06:09:35 +0000 (09:09 +0300)] 
networkd-address: Use DIV_ROUND_UP for consistency

Use DIV_ROUND_UP for consistency instead of the previous construct.

6 years agonetworkd-radv: Fix router lifetime assignment
Patrik Flykt [Fri, 16 Jun 2017 06:35:12 +0000 (09:35 +0300)] 
networkd-radv: Fix router lifetime assignment

Router lifetime is stored as usec_t, use value accordingly.

6 years agonetworkd: Fix comment
Patrik Flykt [Fri, 16 Jun 2017 06:07:13 +0000 (09:07 +0300)] 
networkd: Fix comment

Comment about not being a router is in the wrong place. Router lifetime
is assigned with config_parse_sec().

6 years agomeson: only run c++ tests when c++ compiler is available (#6123)
Davide Cavalca [Thu, 15 Jun 2017 08:55:13 +0000 (09:55 +0100)] 
meson: only run c++ tests when c++ compiler is available (#6123)

6 years agoman: systemd-timesyncd.service(8) (#6109)
Pat Riehecky [Fri, 9 Jun 2017 22:48:25 +0000 (17:48 -0500)] 
man: systemd-timesyncd.service(8) (#6109)

Updates the documentation to note use of SNTP (resolves #5735)

7 years agocore/mount: pass "-c" flag to /bin/umount (#6093)
NeilBrown [Wed, 7 Jun 2017 12:28:23 +0000 (22:28 +1000)] 
core/mount: pass "-c" flag to /bin/umount (#6093)

"-c", which is short for "--no-canonicalize", tells /bin/umount
that the path name is canonical (no .. or symlinks etc).

systemd always uses a canonical name, so this flag is appropriate
for systemd to use.
Knowing that the path is canonical allows umount to avoid
some calls to lstat() on the path.

From v2.30 "-c" goes further and causes umount to avoid all
attempts to 'lstat()' (or similar) the path.  This is important
when automatically unmounting a filesystem, as lstat() can
hang indefinitely in some cases such as when an NFS server
is not accessible.

"-c" has been supported since util-linux 2.17 which is before the
earliest version supported by systemd.
So "-c" is safe to use now, and once util-linux v2.30 is in use,
it will allow mounts from non-responsive NFS servers to be
unmounted.

7 years agoudev: stop freeing value after using it for setting sysattr (#6094)
Evgeny Vereshchagin [Wed, 7 Jun 2017 01:47:47 +0000 (04:47 +0300)] 
udev: stop freeing value after using it for setting sysattr (#6094)

This prevents udev from double-freeing and crashing.

See https://github.com/systemd/systemd/issues/6040#issuecomment-306589836
==351== Invalid free() / delete / delete[] / realloc()
==351==    at 0x4C2C14B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==351==    by 0x13CBE8: hashmap_clear_free_free (hashmap.c:900)
==351==    by 0x13CBE8: hashmap_free_free_free (hashmap.c:852)
==351==    by 0x147F4F: sd_device_unref (sd-device.c:88)
==351==    by 0x130CCC: udev_device_unref (libudev-device.c:552)
==351==    by 0x130CD5: udev_device_unref (libudev-device.c:553)
==351==    by 0x11FBBB: worker_spawn (udevd.c:488)
==351==    by 0x1216E5: event_run (udevd.c:584)
==351==    by 0x1216E5: event_queue_start (udevd.c:823)
==351==    by 0x122213: on_uevent (udevd.c:927)
==351==    by 0x141F2F: source_dispatch (sd-event.c:2272)
==351==    by 0x142D52: sd_event_dispatch (sd-event.c:2631)
==351==    by 0x142D52: sd_event_run (sd-event.c:2690)
==351==    by 0x142D52: sd_event_loop (sd-event.c:2710)
==351==    by 0x1159CB: run (udevd.c:1643)
==351==    by 0x1159CB: main (udevd.c:1772)
==351==  Address 0x81745b0 is 0 bytes inside a block of size 1 free'd
==351==    at 0x4C2C14B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==351==    by 0x1447F0: freep (alloc-util.h:57)
==351==    by 0x1447F0: sd_device_set_sysattr_value (sd-device.c:1859)
==351==    by 0x132081: udev_device_set_sysattr_value (libudev-device.c:849)
==351==    by 0x12E777: set_trackpoint_sensitivity (udev-builtin-keyboard.c:180)
==351==    by 0x12E777: builtin_keyboard.lto_priv.170 (udev-builtin-keyboard.c:263)
==351==    by 0x14D03F: udev_builtin_run.constprop.75 (udev-builtin.c:133)
==351==    by 0x11FAEB: udev_event_execute_run (udev-event.c:957)
==351==    by 0x11FAEB: worker_spawn (udevd.c:461)
==351==    by 0x1216E5: event_run (udevd.c:584)
==351==    by 0x1216E5: event_queue_start (udevd.c:823)
==351==    by 0x122213: on_uevent (udevd.c:927)
==351==    by 0x141F2F: source_dispatch (sd-event.c:2272)
==351==    by 0x142D52: sd_event_dispatch (sd-event.c:2631)
==351==    by 0x142D52: sd_event_run (sd-event.c:2690)
==351==    by 0x142D52: sd_event_loop (sd-event.c:2710)
==351==    by 0x1159CB: run (udevd.c:1643)
==351==    by 0x1159CB: main (udevd.c:1772)
==351==  Block was alloc'd at
==351==    at 0x4C2CF35: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==351==    by 0x144853: sd_device_set_sysattr_value (sd-device.c:1888)
==351==    by 0x132081: udev_device_set_sysattr_value (libudev-device.c:849)
==351==    by 0x12E777: set_trackpoint_sensitivity (udev-builtin-keyboard.c:180)
==351==    by 0x12E777: builtin_keyboard.lto_priv.170 (udev-builtin-keyboard.c:263)
==351==    by 0x14D03F: udev_builtin_run.constprop.75 (udev-builtin.c:133)
==351==    by 0x11FAEB: udev_event_execute_run (udev-event.c:957)
==351==    by 0x11FAEB: worker_spawn (udevd.c:461)
==351==    by 0x1216E5: event_run (udevd.c:584)
==351==    by 0x1216E5: event_queue_start (udevd.c:823)
==351==    by 0x122213: on_uevent (udevd.c:927)
==351==    by 0x141F2F: source_dispatch (sd-event.c:2272)
==351==    by 0x142D52: sd_event_dispatch (sd-event.c:2631)
==351==    by 0x142D52: sd_event_run (sd-event.c:2690)
==351==    by 0x142D52: sd_event_loop (sd-event.c:2710)
==351==    by 0x1159CB: run (udevd.c:1643)
==351==    by 0x1159CB: main (udevd.c:1772)

7 years agozsh: add completion for add-wants and add-requires (#6082)
Felipe Sateler [Wed, 7 Jun 2017 01:32:15 +0000 (21:32 -0400)] 
zsh: add completion for add-wants and add-requires (#6082)

7 years agonetworkd: fix route table from unsigned char to uint32_t (#6083)
Susant Sahani [Tue, 6 Jun 2017 16:02:31 +0000 (16:02 +0000)] 
networkd: fix route table from unsigned char to uint32_t (#6083)

[zj: struct Route is defined with uint32_t route, so this makes the type of the function
parameter match the field it is assigned to.]

7 years agol10n: update Czech Translation (#6090)
AsciiWolf [Tue, 6 Jun 2017 15:52:25 +0000 (17:52 +0200)] 
l10n: update Czech Translation (#6090)

add missing Report-Msgid-Bugs-To

7 years agosd-device: Try /sys/firmware for sysname to allow device-tree (#5837)
Paul Kocialkowski [Tue, 6 Jun 2017 15:27:30 +0000 (18:27 +0300)] 
sd-device: Try /sys/firmware for sysname to allow device-tree (#5837)

This adds /sys/firmware lookup for sysname when creating a new device,
which allows device-tree properties lookup. This look-up can then be
used in udev rules, allowing device-tree-based model detection.

7 years agosystemd-nspawn@.service: start after /var/lib/machines is mounted (#6079)
Josef Gajdusek [Tue, 6 Jun 2017 15:18:22 +0000 (17:18 +0200)] 
systemd-nspawn@.service: start after /var/lib/machines is mounted (#6079)

This fixes a race condition during boot, where an nspawn container would start
before /var/lib/machines got mounted resulting in a failure.

7 years agomkosi: update Debian config for mkosi (#6089)
AsciiWolf [Tue, 6 Jun 2017 14:52:52 +0000 (16:52 +0200)] 
mkosi: update Debian config for mkosi (#6089)

Drop g++ package — it's only used for a test and we want to keep the mkosi installation footprint small-ish.

7 years agosd-bus: silence format warnings in kdbus code (#6072)
Zbigniew Jędrzejewski-Szmek [Sat, 3 Jun 2017 09:41:17 +0000 (05:41 -0400)] 
sd-bus: silence format warnings in kdbus code (#6072)

The code is mostly correct, but gcc is trying to outsmart us, and emits a
warning for a "llu vs lu" mismatch, even though they are the same size (on alpha):

src/libsystemd/sd-bus/bus-control.c: In function ‘kernel_get_list’:
src/libsystemd/sd-bus/bus-control.c:267:42: error: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 3 has type ‘__u64 {aka long unsigned int}’ [-Werror=format=]
                         if (asprintf(&n, ":1.%llu", name->id) < 0) {
                                          ^
src/libsystemd/sd-bus/bus-control.c: In function ‘bus_get_name_creds_kdbus’:
src/libsystemd/sd-bus/bus-control.c:714:47: error: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 3 has type ‘__u64 {aka long unsigned int}’ [-Werror=format=]
                 if (asprintf(&c->unique_name, ":1.%llu", conn_info->id) < 0) {
                                               ^
This is hard to work around properly, because kdbus.h uses __u64 which is
defined-differently-despite-being-the-same-size then uint64_t. Thus the simple
solution of using %PRIu64 fails on amd64:

src/libsystemd/sd-bus/bus-control.c:714:47: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘__u64 {aka long long unsigned int}’ [-Werror=format=]
                 if (asprintf(&c->unique_name, ":1.%"PRIu64, conn_info->id) < 0) {
                                               ^~~~~~

Let's just avoid the whole issue for now by silencing the warning.
After the next release, we should just get rid of the kdbus code.

Fixes #5561.

7 years agotests: skip test_exec_inaccessiblepaths_proc when inaccessible dir is unavailable...
Evgeny Vereshchagin [Thu, 1 Jun 2017 17:58:37 +0000 (20:58 +0300)] 
tests: skip test_exec_inaccessiblepaths_proc when inaccessible dir is unavailable (#6068)

test_exec_inaccessiblepaths_proc depends on
/run/systemd/inaccessible/dir, which may be unavailable.

See https://github.com/systemd/systemd/issues/5987#issuecomment-305448958.

7 years agohwdb: add multimedia keys for Medion Akoya S3409 (#6062)
Lluís Gili [Thu, 1 Jun 2017 10:16:32 +0000 (12:16 +0200)] 
hwdb: add multimedia keys for Medion Akoya S3409 (#6062)

7 years agoMerge pull request #6058 from keszybz/chrooted-test-fixes
Martin Pitt [Thu, 1 Jun 2017 07:37:13 +0000 (09:37 +0200)] 
Merge pull request #6058 from keszybz/chrooted-test-fixes

Chrooted test fixes

7 years agologinctl: also use $XDG_SESSION_ID for session-status 6064/head
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jun 2017 02:42:14 +0000 (22:42 -0400)] 
loginctl: also use $XDG_SESSION_ID for session-status

7 years agologinctl: use $XDG_SESSION_ID for "our" session
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jun 2017 02:23:30 +0000 (22:23 -0400)] 
loginctl: use $XDG_SESSION_ID for "our" session

Instead of always letting logind guess what the caller's session is, let's
give it the value from $XDG_SESSION_ID when it is present in the caller's
environment.

Nowadays terminal emulators are often running as services under systemd --user,
and not as part of an actual session, so all loginctl calls which depend on
logind guessing the session will fail. I don't see a reason not to honour
$XDG_SESSION_ID.

This applies to LockSession, UnlockSession, TerminateSession, ActivateSession,
SetUserLinger.

Fixes #6032.

7 years agologind: nicer error message when we cannot guess the caller's session
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jun 2017 02:10:15 +0000 (22:10 -0400)] 
logind: nicer error message when we cannot guess the caller's session

Partial fix for #6032.

7 years agohwdb: use path_join() to generate the hwdb_bin path (#6063)
Michael Biebl [Thu, 1 Jun 2017 01:21:11 +0000 (03:21 +0200)] 
hwdb: use path_join() to generate the hwdb_bin path (#6063)

This avoids having double slashes which can confuse selinux.

7 years agoman: update sd_get_seats(3) 6058/head
Yu Watanabe [Wed, 31 May 2017 15:27:47 +0000 (00:27 +0900)] 
man: update sd_get_seats(3)

7 years agosd-login: sd_get_machine_names(): do not return -EINVAL when output parameter is...
Yu Watanabe [Wed, 31 May 2017 15:12:32 +0000 (00:12 +0900)] 
sd-login: sd_get_machine_names(): do not return -EINVAL when output parameter is NULL

Other functions in sd-login generally allow the output parameter to be NULL, in
which case only the number of items that would be stored in the array is returned.
Be nice and do the same here.

7 years agosd-login: treat missing /run/systemd/{seats,sessions,users} the same as empty
Yu Watanabe [Wed, 31 May 2017 14:48:47 +0000 (23:48 +0900)] 
sd-login: treat missing /run/systemd/{seats,sessions,users} the same as empty

C.f. 0543105b0fb13e4243b71a78f62f81fb9dde5d51.
This makes if /run/systemd/{seats,sessions,users} are missing, then
sd_get_seats(), sd_get_sessions() and sd_get_uids() return 0, that is,
an empty list, instead of -ENOENT.

7 years agoMerge pull request #6053 from keszybz/doc-tweaks
Martin Pitt [Wed, 31 May 2017 21:24:57 +0000 (23:24 +0200)] 
Merge pull request #6053 from keszybz/doc-tweaks

Man page and unit file and mailmap and meson tweaks

7 years agoMerge pull request #6060 from keszybz/reboot-f-warning
Djalal Harouni [Wed, 31 May 2017 14:57:55 +0000 (16:57 +0200)] 
Merge pull request #6060 from keszybz/reboot-f-warning

systemctl: avoid spurious warning about missing reboot-param file

7 years agobuild: *really* install tmpfiles.d/systemd-remote.conf when necessary (#6061)
Franck Bui [Wed, 31 May 2017 13:44:08 +0000 (15:44 +0200)] 
build: *really* install tmpfiles.d/systemd-remote.conf when necessary (#6061)

This fixes commit 5e354b22520bbb02e which was an attempt to avoid installation
of tmpfiles.d/systemd-remote.conf when it was not needed (ie HAVE_REMOTE=false).

Before this fix and with the autotool build, systemd-remote.conf was
distributed and also installed (although it was empty) even though
HAVE_REMOTE=false.

That's what happens when doing last second changes without retesting...

While at it, update tmpfiles.d/.gitignore (var.conf was missing as well
since commit a083537e5d11b).

7 years agosystemctl: avoid spurious warning about missing reboot-param file 6060/head
Zbigniew Jędrzejewski-Szmek [Wed, 31 May 2017 03:14:31 +0000 (23:14 -0400)] 
systemctl: avoid spurious warning about missing reboot-param file

$ reboot -f
Failed to read reboot parameter file: No such file or directory

It seems that the warning on ENOENT was inadvertently introduced in
27c06cb516c3b87c34f2a1c2c227152997d05c8c.

The warning reported in #5646 comes from systemctl, but let's fix the other
call site in the same way too.

Fixes #5646.

7 years agomeson: output TAGS file in source not build directory 6053/head
Zbigniew Jędrzejewski-Szmek [Tue, 30 May 2017 23:56:12 +0000 (19:56 -0400)] 
meson: output TAGS file in source not build directory

The TAGS file was generated in build/ following what autotools did.
Nevertheless, it's more convenient to put in the source dir.
(It doesn't get deleted by mistake, and it's easier to find for the
editor.)

7 years agomailmap: add entries for recent commits from github
Zbigniew Jędrzejewski-Szmek [Tue, 23 May 2017 23:46:10 +0000 (19:46 -0400)] 
mailmap: add entries for recent commits from github

7 years agotest-bus-vtable: it's OK if dbus is not running
Zbigniew Jędrzejewski-Szmek [Wed, 31 May 2017 00:36:18 +0000 (20:36 -0400)] 
test-bus-vtable: it's OK if dbus is not running

Fixes #5989.

7 years agosd-login: translate -ENOMEDIUM to -ENODATA
Zbigniew Jędrzejewski-Szmek [Wed, 31 May 2017 00:21:45 +0000 (20:21 -0400)] 
sd-login: translate -ENOMEDIUM to -ENODATA

The -ENOMEDIUM return value was introduced in v232-1001-g2977724b09,
('core: make hybrid cgroup unified mode keep compat /sys/fs/cgroup/systemd hierarchy'),
and would be returned by cg_pid_get_path_shifted(), but the documented and
expected return value is -ENODATA. Let's just catch ENXIO/ENOMEDIUM and translate
it to ENODATA in all cases.

Complements 171f8f591ff27ebb5ff475b7a9d1f13a846c9331, fixes #6012.

7 years agosulogin-shell: avoid heredocs
Zbigniew Jędrzejewski-Szmek [Tue, 30 May 2017 21:03:25 +0000 (17:03 -0400)] 
sulogin-shell: avoid heredocs

They require a writable /tmp dir (in the bash implementation).
Let's use echo, and not 'echo -e' since that doesn't seem to be completely
portable.

Fixes #6052.

7 years agoman: update MemoryDenyWriteExecute description for executable stacks
Zbigniew Jędrzejewski-Szmek [Tue, 30 May 2017 20:43:48 +0000 (16:43 -0400)] 
man: update MemoryDenyWriteExecute description for executable stacks

Without going into details, mention that libraries are also covered by the
filters, and that executable stacks are a no no.

Closes #5970.

7 years agoman: don't say that ExecStart syntax is "very shell"
Zbigniew Jędrzejewski-Szmek [Tue, 30 May 2017 20:31:51 +0000 (16:31 -0400)] 
man: don't say that ExecStart syntax is "very shell"

Fixes #6035.

7 years agobuild: only install tmpfiles.d/systemd-remote.conf when necessary (#6051)
Franck Bui [Tue, 30 May 2017 15:03:25 +0000 (17:03 +0200)] 
build: only install tmpfiles.d/systemd-remote.conf when necessary (#6051)

Also only include the relevant parts for systemd-journal-remote and
systemd-journal-upload when needed.

7 years agokernel-install: support the case /etc/machine-id is missing or empty (#5975)
Yu Watanabe [Tue, 30 May 2017 13:45:10 +0000 (22:45 +0900)] 
kernel-install: support the case /etc/machine-id is missing or empty (#5975)

Some .install plugins does not require that machine ID is set such as
20-grubby.install for Fedora and 50-depmod.install.
To support such plugins to run without valid machine-id, this commit
makes the following change:
* if /etc/machine-id is missing or empty, create temporary directory
  and set its path to BOOT_DIR_ABS,
* run the .install helpers with KERNEL_INSTALL_MACHINE_ID environment
  variable that'd be empty if /etc/machine-id is missing or empty.
This may be useful for installing kernel for e.g. stateless systems
which initialize machine-id while booting the systems.

7 years agorules: watch metadata changes in mmcblk devices (#6050)
kjackiewicz [Tue, 30 May 2017 13:19:03 +0000 (15:19 +0200)] 
rules: watch metadata changes in mmcblk devices (#6050)

Formatting sd-cards does not trigger "change" uevents. As a result clients
using udev API don't get any updates afterwards and get outdated information
about the device.

Include mmcblk* in a match for watch option assignment.

7 years agotimesyncd: properly handle OOM errors when parsing fallback servers (#6047)
Lennart Poettering [Tue, 30 May 2017 12:49:35 +0000 (14:49 +0200)] 
timesyncd: properly handle OOM errors when parsing fallback servers (#6047)

7 years agoMerge pull request #4512 from pfl/ndisc_exponential_backoff
Lennart Poettering [Tue, 30 May 2017 12:49:07 +0000 (14:49 +0200)] 
Merge pull request #4512 from pfl/ndisc_exponential_backoff

Ndisc exponential backoff

7 years agotest-ndisc-rs.c: Test Router Solicitation timer computation 4512/head
Patrik Flykt [Fri, 19 May 2017 13:22:47 +0000 (16:22 +0300)] 
test-ndisc-rs.c: Test Router Solicitation timer computation

Test ICMPv6 Router Solicitation exponential backoff timer by
computing the minimum and maximum values according to RFC 7559,
Section 2 and the algorithm itself described in RFC 3315, Section
14. Reset the sd_ndisc timer to trigger after a zero second delay,
which causes the ndisc timeout to be triggered immediately once
the caller of the "sending" function returns to the main loop.

7 years agosd-ndisc.c: Move Router Solicitation sending after timer computaion
Patrik Flykt [Fri, 19 May 2017 13:22:46 +0000 (16:22 +0300)] 
sd-ndisc.c: Move Router Solicitation sending after timer computaion

Move ICMPv6 Router Solicitation sending after timer computation so
that timers are already set up when the packet is being sent. This
makes it possible to create a test that inspects Router
Solicitation timer values when the Router Solicitation is sent out
on the network.

7 years agosd-ndisc: Implement Router Solicitation backoff method
Patrik Flykt [Fri, 19 May 2017 13:22:45 +0000 (16:22 +0300)] 
sd-ndisc: Implement Router Solicitation backoff method

Instead of sending a fixed amount of Router Solicitiations, implement
the backoff algorithm proposed in RFC 7559. The backoff algorithm is
the same as used by DHCPv6.

Time out after 12s as specified in RFC 4861 in order not to delay
setting up a link for too long while sending Router Solicitations
in the background. Notice that after this change the callback will
receive a SD_NDISC_EVENT_TIMEOUT timeout event, and at a later point
when a router appears, a received Router Advertisment will cause the
callback to be called again with the SD_NDISC_EVENT_ROUTER event.

7 years agonetwork: bridge vlan without PVID (#5899)
Tobias Jungel [Mon, 29 May 2017 15:20:01 +0000 (17:20 +0200)] 
network: bridge vlan without PVID (#5899)

this patch makes it possible to configure a vlan aware bridge without the
PVID. To configure no PVID set DefaultPVID=none in the [BridgeVLAN] section.

fixes #5716

7 years agoMerge pull request #5926 from fsateler/condition-uid
Lennart Poettering [Mon, 29 May 2017 13:18:38 +0000 (15:18 +0200)] 
Merge pull request #5926 from fsateler/condition-uid

core: add ConditionUID and ConditionGID

7 years agoMerge pull request #6031 from teg/monitor
Lennart Poettering [Mon, 29 May 2017 13:08:20 +0000 (15:08 +0200)] 
Merge pull request #6031 from teg/monitor

busctl: fix up the monitor

7 years agoshell-completion: add systemctl revert (#6042)
Lucas Werkmeister [Mon, 29 May 2017 13:01:01 +0000 (15:01 +0200)] 
shell-completion: add systemctl revert (#6042)

The `systemctl revert` command was added in v230 (commit 344ca7556b),
but was missing from the shell completion specifications.

Fixes #5978.