Commit Graph

32961 Commits

Author SHA1 Message Date
Lennart Poettering 7bc756ff00 update TODO 2018-04-12 11:02:47 +02:00
Lennart Poettering fe4377faa5 importd: ensure we don't mishandle a NULL string 2018-04-12 11:02:47 +02:00
Lennart Poettering 8460289f35 path-util: document a few other special cases for last_path_component() 2018-04-12 11:02:47 +02:00
Lennart Poettering 342f6f80f5 process-util: add TAKE_PID(), similar to TAKE_PTR/TAKE_FD, but for child process PIDs 2018-04-11 22:30:04 +02:00
Lennart Poettering 1ce360813d util: introduce typesafe_qsort(), a typesafe version of qsort()/qsort_safe()
It does two things:

1. It derives the element size from the array argument type

2. It derives the right type for the function from the array argument
   type

Using this macro call should make the invocations of qsort() quite a bit
safer.
2018-04-11 22:30:04 +02:00
Lennart Poettering b667d50d34
Merge pull request #8700 from keszybz/hibernation
Various improvements related to hibernation
2018-04-11 10:26:27 +02:00
Zbigniew Jędrzejewski-Szmek 4638cd39af shared/sleep-config: rename misnamed function 2018-04-11 09:27:32 +02:00
Zbigniew Jędrzejewski-Szmek b71c9758d1 shared/sleep-config: return a custom message when not enough swap for hibernation
$ sudo swapoff -av
swapoff /dev/vda4
$ sudo systemctl hibernate
Failed to hibernate system via logind: Not enough swap space for hibernation

Fixes #6729.
2018-04-11 09:26:14 +02:00
Zbigniew Jędrzejewski-Szmek c8c8ee85af logind: refuse operations if the target unit is masked or unavailable
If hibernate.target is masked, and systemctl hibernate is invoked, havoc ensues.
logind starts the hibernation operation, but then doesn't go through with it;
gnome-shell segfaults. Let's be nice to the user and refuse doing anything in
that case.

$ sudo systemctl mask hibernate.target
$ busctl call org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager CanHibernate
s "no"
$ sudo systemctl hibernate
Failed to hibernate system via logind: Access denied
Failed to start hibernate.target: Unit hibernate.target is masked.

https://bugzilla.redhat.com/show_bug.cgi?id=1468003#c4
2018-04-10 21:31:59 +02:00
Zbigniew Jędrzejewski-Szmek bd062910c8 Move utility function to query unit state from systemctl to shared/ 2018-04-10 21:31:59 +02:00
Zbigniew Jędrzejewski-Szmek c863dc0588 shared/sleep-fix: fix check if s-then-h is possible
can_sleep() returns 0 if the operation is impossible, but
the code assumed that negative is returned in that case,
in effect reporting s2h was possible even if hibernation or
suspend were not possible.
2018-04-10 21:31:59 +02:00
Zbigniew Jędrzejewski-Szmek 6524f1a8eb shared/sleep-config: get rid of explicit allocation size calculation 2018-04-10 21:31:58 +02:00
Evgeny Vereshchagin cf45dd3628
hwdb: drop a space (#8701)
This should make `parse_hwdb.py` and the CI happy again.
2018-04-10 22:10:52 +03:00
Lennart Poettering 4d09e1c8ba
Merge pull request #8676 from keszybz/drop-license-boilerplate
Drop license boilerplate
2018-04-10 14:53:31 +02:00
Zbigniew Jędrzejewski-Szmek aad69cce2d
Merge pull request #8406 from dell/hibernate-disk-offset
Add support for setting a disk offset when hibernating
2018-04-10 09:53:17 +02:00
emelenas 87ca11cb92 Add override axis for Toshiba Satellite R830 (#8694)
Incorrect range and resolution for the touchpad at a Toshiba Satellite R830 reported by kernel. After running

$ sudo touchpad-edge-detector 85x50 /dev/input/event4

the new axis overrides are as follows

#Toshiba Satellite R830
evdev:name:SynPS/2 Synaptics TouchPad:dmi:svnTOSHIBA:pnSATELLITER830
EVDEV_ABS_00=1238:5785:53
EVDEV_ABS_01=1045:4826:76
EVDEV_ABS_35=1238:5785:53
EVDEV_ABS_36=1045:4826:76

Those overrides have been tested to work.
2018-04-10 08:15:25 +10:00
Stephen Hemminger 2063b5540e hwdb: add support for VMBUS guids (#8677)
This addresses missing feature on #8677

Devices in Hyper-V/Azure exist on vmbus and are identified by
UUID value. This patch adds a hardware table so that udevadm
can report properties. I chose names are based on the values
reported in Window Device Manager (for consistency).
The table includes several devices that are not used by Linux
but are present and ignored.

For example:

$ udevadm info -q property /sys/bus/vmbus/devices/58f75a6d-d949-4320-99e1-a2a2576d581c
DEVPATH=/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/VMBUS:00/58f75a6d-d949-4320-99e1-a2a2576d581c
DRIVER=hid_hyperv
ID_MODEL_FROM_DATABASE=Microsoft Hyper-V Mouse
MODALIAS=vmbus:9eb6a8cf4a5bc04cb98b8ba1a1f3f95a
SUBSYSTEM=vmbus
USEC_INITIALIZED=11076966

Or with updated kernel the driverctl script.

$ driverctl -b vmbus -v list-devices
1eccfd72-4b41-45ef-b73a-4a6e44c12924 hv_balloon (Microsoft Hyper-V Dynamic Memory)
242ff919-07db-4180-9c2e-b86cb68c8c55 hv_util (Microsoft Hyper-V Data Exchange)
2450ee40-33bf-4fbd-892e-9fb06e9214cf hv_util (Microsoft Hyper-V Backup/Restore)
2dd1ce17-079e-403c-b352-a1921ee207ee hv_util (Microsoft Hyper-V Time Sync)
4487b255-b88c-403f-bb51-d1f69cf17f87 (none) (Microsoft Hyper-V Virtual Machine Activation)
53557f8e-057d-425b-9265-01c0fd7e273e hv_netvsc (Microsoft Hyper-V Network Adapter)
5620e0c7-8062-4dce-aeb7-520c7ef76171 hyperv_fb (Microsoft Hyper-V Video)
58f75a6d-d949-4320-99e1-a2a2576d581c hid_hyperv (Microsoft Hyper-V Mouse)
849a776e-8120-4e4a-9a36-7e3d95ac75b3 hv_netvsc (Microsoft Hyper-V Network Adapter)
99221fa0-24ad-11e2-be98-001aa01bbf6e (none) (Microsoft Hyper-V Remote Desktop Control)
b2f44faf-2a29-42ba-91b2-f13fd30a2d4b hv_storvsc (Microsoft Hyper-V SCSI Controller)
b6650ff7-33bc-4840-8048-e0676786f393 hv_util (Microsoft Hyper-V Guest Shutdown)
d34b2567-b9b6-42b9-8778-0a4ec0b955bf hyperv_keyboard (Microsoft Hyper-V Keyboard)
f5bee29c-1741-4aad-a4c2-8fdedb46dcc2 (none) (Microsoft Hyper-V Remote Desktop Virtualization)
fd149e91-82e0-4a7d-afa6-2a4166cbd7c0 hv_util (Microsoft Hyper-V Heartbeat)
2018-04-09 22:25:08 +02:00
Mario Limonciello 0ca906ace0 sleep: Move the error level debugging for write_mode and write_state
This makes it more consistent with other code used in the file.

Signed-off-by: Mario Limonciello <mario.limonciello@dell.com>
2018-04-09 13:17:56 -05:00
Mario Limonciello 17c40b3a8f sleep: Add support for setting a disk offset when hibernating
The Linux kernel is adding support for configuring the offset
into a disk.  This allows swapfiles to be more usable as users
will no longer need to set the offset on their kernel command
line.

Use this API in systemd when hibernating as well.

Signed-off-by: Mario Limonciello <mario.limonciello@dell.com>
2018-04-09 13:17:56 -05:00
Lennart Poettering e89ab7f219
Merge pull request #8681 from keszybz/assorted-style-fixes
Assorted style fixes
2018-04-09 11:32:51 +02:00
Zbigniew Jędrzejewski-Szmek f39cbb6e69 systemctl: pass BUS_MAP_STRDUP when needed (#8682)
This fixes an assert in "systemctl list-dependencies".
Follow-up for a7e4861c74.
2018-04-08 15:12:18 +09:00
Zbigniew Jędrzejewski-Szmek 0fad9daf4b time-sync-wait: trivial style fixes 2018-04-07 20:05:58 +02:00
Zbigniew Jędrzejewski-Szmek 30dd293c88 sd-event: use _cleanup_ to manage temporary references 2018-04-07 20:05:58 +02:00
Zbigniew Jędrzejewski-Szmek 1e9f0ccadf analyze: give a hint what is it means that boot is still active
$ build/systemd-analyze time
Bootup is not yet finished (org.freedesktop.systemd1.Manager.FinishTimestampMonotonic=0).
Please try again later.
Hint: Use 'systemctl list-jobs' to see active jobs
2018-04-07 20:05:58 +02:00
Zbigniew Jędrzejewski-Szmek e9e8cbc83a core: minor comment update 2018-04-07 20:05:58 +02:00
Zbigniew Jędrzejewski-Szmek 0cfa78ddf7 dissect: drop unnecessary parenthesis 2018-04-07 20:05:58 +02:00
Guillem Jover 5c69b31c13 analyze: Do no require a full d-bus bus for the plot command (#8539)
The plot command requires a full d-bus bus to fetch the host
information, which seems rather optional, and having a running dbus
daemon is not always desirable. So instead, we try to acquire a full
bus, and if that fails we acquire the systemd bus, in which case we
omit the host information from the output.

We refactor acquire_bus() into two new functions which in addition
makes the call sites clearer.
2018-04-07 20:02:20 +02:00
Martin Wilck e438c57a64 systemd-udevd: limit children-max by available memory (#8668)
Udev workers consume typically 50-100MiB virtual memory.
On systems with lots of CPUs and relatively low memory, that may
easily cause workers to be OOM-killed.

This patch limits the number of workers to 8 per GiB memory.
But don't let the limit drop below the smallest value we had
without this patch (8 + 1 * 2 = 10); on small systems, udev's
memory footprint is likely lower.
2018-04-07 17:33:48 +02:00
Brian J. Murrell 598749a8c9 Clarify checker/helper in systemd-fsck@.service manpage (#8674)
Clarify the helper/checker terminology in the systemd-fsck@.service manpage to
make the description more clear about what is responsible for deciding if a filesystem
needs checking.
2018-04-07 17:12:26 +02:00
Zbigniew Jędrzejewski-Szmek d506b89cf9 src/network: add missing SPDX identifiers 2018-04-06 19:02:13 +02:00
Zbigniew Jędrzejewski-Szmek 11a1589223 tree-wide: drop license boilerplate
Files which are installed as-is (any .service and other unit files, .conf
files, .policy files, etc), are left as is. My assumption is that SPDX
identifiers are not yet that well known, so it's better to retain the
extended header to avoid any doubt.

I also kept any copyright lines. We can probably remove them, but it'd nice to
obtain explicit acks from all involved authors before doing that.
2018-04-06 18:58:55 +02:00
Zbigniew Jędrzejewski-Szmek b834c6cee5 fuzz-unit-file: allow a space between variable name and "=" (#8670)
The parser allows that, so the check when to skip needs this too.

https://oss-fuzz.com/v2/issue/5106486364602368/7422
2018-04-06 11:36:17 +02:00
Zbigniew Jędrzejewski-Szmek 43d2646ad3
Merge pull request #8663 from poettering/dissect-tighten
Small fixes for image dissection code.
2018-04-06 10:14:25 +02:00
Yu Watanabe 66f5730471
core/device: remove unnecessary check (#8661)
Follow-up for 0dfb0a0abd.
2018-04-06 15:45:13 +09:00
Philip Sequeira 7511655807 nspawn: wait for network namespace creation before interface setup (#8633)
Otherwise, network interfaces can be "moved" into the container's
namespace while it's still the same as the host namespace, in which case
e.g. host0 for a veth ends up on the host side instead of inside the
container.

Regression introduced in 0441378080.

Fixes #8599.
2018-04-05 07:04:27 -07:00
Zbigniew Jędrzejewski-Szmek 1b836bed2c
Merge pull request #8662 from poettering/rfkill-enxio
handle ENODEV and ENXIO gracefully in rfkill
2018-04-05 13:20:38 +02:00
Lennart Poettering 429d4e414d dissect: when pulling metadata from an image, don't bother with /home or ESP
When we try to read meta-data from an image, don't bother with mounting
/home or the ESP, as that's not where the metadata is. This not only
speeds things up a bit, but also has the benefit that setups where an
unencrypted root is mixed with an encrypted /home (which I have on one
of my own systems) won't result in errors that the crypto key is needed.
2018-04-05 13:15:43 +02:00
Lennart Poettering 0bb8dfaa53 update TODO 2018-04-05 13:07:31 +02:00
David Tardon 3de8ff5a69 journald: bump rate limits (#8660)
Apparently, it is quite common to hit a problem, where systemd-journald
would drop messages because service is logging too fast.
2018-04-05 13:06:59 +02:00
Lennart Poettering aae22eb3a3 dissect: tighten block device checks a bit
This extends on #8609, and makes two changes:

1. We'll now explicitly check that the child devices of a block device
   we are interested in (i.e. the partitions) are block devices themselves.
   On newer kernels the mmc rpmb stuff is actually exposed as char rather
   than block device as before, and they probably should have been that in
   the first place. By adding this check we'll hence filter out these weird
   devices through a second rule too, that hopefully makes things a bit
   more future-proof, should more devices like this be added eventually,
   or other subsystems do a similar thing.

2. When counting partitions we'll now also check the devnum of the
   device being non-null, which we already do when matching up the devices
   in the second iteration. This should make things more robust, and
   prevent other kinds of miscounting, which after all was the main
   issue #8609 fixed.
2018-04-05 13:03:37 +02:00
Lennart Poettering bc5e002ef1 rfkill: treat ENXIO/ENODEV the same way as ENOENT
If an rfkill device disappears between the time we get notified about
the existance and we fully opened it we might get ENXIO or ENODEV (i.e.
the two kinds of "device not found" errors, which are typically
generated when for example a device node has no actual backing device
behind it). let's handle that the same way as ENOENT, and downgrade the
log message to LOG_DEBUG.

Fixes: #8586
2018-04-05 13:00:43 +02:00
Lennart Poettering 3b3d1737be rfkill: use our usual style for writing destructors
Let's accept NULL values gracefully, and let's return NULL.
2018-04-05 12:42:50 +02:00
Lennart Poettering 6064de2de8
Merge pull request #8617 from keszybz/tmpfiles-relax
Do not exit with error when systemd-tmpfiles --boot fails
2018-04-05 11:54:02 +02:00
Lennart Poettering ba45959cb2
Merge pull request #8656 from yuwata/random-fixes
use TAKE_PTR() and TAKE_FD() macros, and small fixes
2018-04-05 10:19:12 +02:00
Zbigniew Jędrzejewski-Szmek c79b89e6eb tmpfiles: ignore "operational" errors during setup
We still get the errors logged, but we don't fail the service. This
is better for users because rerunning tmpfiles-setup.service a second
time is dangerous (c.f. cd9f5b68ce).
Note that this only touches sd-tmpfiles-setup.service and
sd-tmpfiles-setup-dev.service. sd-tmpfiles-clean.service is as before.

https://bugzilla.redhat.com/show_bug.cgi?id=1539341
2018-04-05 08:13:53 +02:00
Zbigniew Jędrzejewski-Szmek bb9947be2f tmpfiles: add a new return code for "operational failure" when processing
Things can fail, and we have no control over it:
- file system issues (immutable bits, file system errors, MAC refusals, etc)
- kernel refusing certain arguments when writing to /proc/sys or /sys
Let's add a new code for the case where we parsed configuration but failed
to execute it because of external errors.
2018-04-05 08:13:53 +02:00
Yu Watanabe 0dfb0a0abd core/device: trivial simplification 2018-04-05 14:26:34 +09:00
Yu Watanabe 1cc6c93a95 tree-wide: use TAKE_PTR() and TAKE_FD() macros 2018-04-05 14:26:26 +09:00
Yu Watanabe 3d282fff06 network: fix typo in log message 2018-04-05 10:20:13 +09:00
Yu Watanabe 393a256bbb meson: sort source files 2018-04-05 10:20:08 +09:00