systemd/.git
5 years agocore: propagate service state to socket in more load states
Lennart Poettering [Thu, 9 Jan 2020 10:51:40 +0000 (11:51 +0100)]
core: propagate service state to socket in more load states

It makes sense to filter state changes for some load states that
shouldn't happen, but the common cases should be accepted, because they
might happen during runtime when "systemctl daemon-reload" is issued and
unit files changed state in between. Otherwise we lose events.

Fixes: #4708
(cherry picked from commit 4c2ef3276735ad9f7fccf33f5bdcbe7d8751e7ec)

5 years agoman: describe "symlink" and "systemctl link" explicitly in UNIT FILE LOAD PATH
HATAYAMA Daisuke [Wed, 18 Dec 2019 03:01:42 +0000 (22:01 -0500)]
man: describe "symlink" and "systemctl link" explicitly in UNIT FILE LOAD PATH

There are sometimes users who put unit files in a location that is inaccessible
when systemd starts although they are not found and thus not started because
the corresponding mount units have not activated yet.

There is already a warning for such issue in man 8 systemctl:

     link PATH...
         ...<snip>...
         The file system where
         the linked unit files are located must be accessible
         when systemd is started (e.g. anything underneath /home
         or /var is not allowed, unless those directories are
         located on the root file system).

However, it looks that it's difficult to find the warning because introductory
users typically doesn't know systemctl link.

Although there is a description in UNIT FILE LOAD PATH pointing to systemctl
link, symlink is now not explicitly mentioned there and thus users doesn't
easily get aware of they should read it.

To deal with this, let's describe "symlink" and "systemctl link" more
explicitly in UNIT FILE LOAD PATH.

(cherry picked from commit b63c88b6271804e4770a14d94c66210e0c8063d7)

5 years agocore: be more restrictive on the dependency types we allow to be created transiently
Lennart Poettering [Thu, 9 Jan 2020 11:01:45 +0000 (12:01 +0100)]
core: be more restrictive on the dependency types we allow to be created transiently

We should allow the ones that the [Unit] section of regular unit files
may accet, but no other, in particular not the internal deps we
synthesize as reverse of explicitly configured ones, such was WantedBy=.

Fixes: #14251
(cherry picked from commit 404308486aa285c67c5af4c8e7d6be393ce5a3c7)

5 years agoudev: don't import parent ID_FS_ data on partitions
Thomas Schmitt [Mon, 6 Jan 2020 07:10:32 +0000 (15:10 +0800)]
udev: don't import parent ID_FS_ data on partitions

When probing partitions, we inherit important information from the parent
disk device such as ID_MODEL, and usage of such properties is seen to
be acceptable and well established.

However, we need to exclude filesystem information from the properties
that get inherited. Information about the device content should not be
passed on in this way.

For example, Linux distro install media commonly uses an ISO filesystem
plus a partition table. The ISO filesystem is detected on the main disk
device, but we should not pass down those details to the partitions,
some or all of which may be pointing at storage areas completely distinct
from the ISO filesystem.

This is particularly problematic when adding new partitions on media
set up in this way (since the new partitions are then reported to contain
the parent device's ISO filesystem), or when dealing with more unusual
hybrid ISO layouts. The inaccuracy of information here inversely affects
users of blkid and udev's persistent storage symlinks.

Exclude ID_FS_* properties from the inheritance chain to avoid these
problems.

Fixes: #14408
(cherry picked from commit 19212f27816686a5cac2c965301cea8624ac467f)

5 years agoman: fix option name
Zbigniew Jędrzejewski-Szmek [Wed, 8 Jan 2020 09:39:44 +0000 (10:39 +0100)]
man: fix option name

(cherry picked from commit 95522092925ac7b3526211c9c0c35b5722b43e95)

5 years agoSupport Plugable UD-PRO8 dock
ezst036 [Wed, 8 Jan 2020 00:47:15 +0000 (19:47 -0500)]
Support Plugable UD-PRO8 dock

Add support for Plugable Pro8 docking station for auto-configuring seat

(cherry picked from commit 95f2b4dd237faa57fd3e93245d560e47cdedfc2c)

5 years agogpt-auto: don't assume XBOOTLDR is vfat
Lennart Poettering [Tue, 7 Jan 2020 16:21:24 +0000 (17:21 +0100)]
gpt-auto: don't assume XBOOTLDR is vfat

Let's not assume "umask=" is a valid mount option for XBOOTLDR
partitions unconditionally.

Fixes: #14165
(cherry picked from commit 4f0840669e172a2570b17b0991459d3a6839f804)

5 years agoman: fix documentation of IBM VIO device naming
Lennart Poettering [Tue, 7 Jan 2020 17:02:15 +0000 (18:02 +0100)]
man: fix documentation of IBM VIO device naming

We generate "v" in two different ways, and they got mixed up.

(cherry picked from commit a1686563ded4cb6967034a59a61a50534c952dad)

5 years agoman: slightly extend documentation on difference between ID_NET_NAME_ONBOARD and...
Lennart Poettering [Tue, 7 Jan 2020 17:01:56 +0000 (18:01 +0100)]
man: slightly extend documentation on difference between ID_NET_NAME_ONBOARD and ID_NET_LABEL_ONBOARD

(cherry picked from commit e232c307c052c85825e5017be868e1bd6bf4f97a)

5 years agoboot: fix osrel parser
Lennart Poettering [Tue, 7 Jan 2020 14:20:32 +0000 (15:20 +0100)]
boot: fix osrel parser

let's check VERSION instead of VERSION_ID where appropriate.

Fixes: #14493
(cherry picked from commit 4353974d75940352486bac21b877a598e70558d5)

5 years agoudev: do not use exact match of file permission
Yu Watanabe [Tue, 7 Jan 2020 10:22:59 +0000 (19:22 +0900)]
udev: do not use exact match of file permission

This partially reverts 25de7aa7b90c23d33ea50ada1e50c5834a414237.

Fixes #14473.

(cherry picked from commit 7a182f10343796eab92a8256e347c11b4be78ea7)

5 years agonetwork: lower the log-level of harmless message
Yu Watanabe [Mon, 6 Jan 2020 07:48:27 +0000 (16:48 +0900)]
network: lower the log-level of harmless message

Closes #14285.

(cherry picked from commit d6246fd498ab0e4a9a78bcfd4cc1625af16f4784)

5 years agohwdb: ignore keys added in kernel 5.5
Zbigniew Jędrzejewski-Szmek [Thu, 19 Dec 2019 10:48:46 +0000 (11:48 +0100)]
hwdb: ignore keys added in kernel 5.5

python-evdev needs to be rebuilt with new kernel headers. Before that
happens, our test would reject those keys as unknown.

(cherry picked from commit 12c7d4d65e4fbc95b2f76853bdcf4fdc554d5c11)

5 years agosystemctl: skip non-existent units in the 'cat' verb
Frantisek Sumsal [Sat, 28 Dec 2019 11:29:19 +0000 (12:29 +0100)]
systemctl: skip non-existent units in the 'cat' verb

When processing list of units (either provided manually or as a
wildcard), let's skip units for which we don't have an on-disk
counterpart, but note the -ENOENT error code and propagate it back to
the user.

Fixes: #14082
(cherry picked from commit a25457f5b7689265bd2235c4da218896e7c5c1d0)

5 years agosystemd.exec: document the file system for EnvironmentFile paths
Topi Miettinen [Sat, 28 Dec 2019 17:38:27 +0000 (19:38 +0200)]
systemd.exec: document the file system for EnvironmentFile paths

Files specified with EnvironmentFile are read from PID1 mount namespace, before
any file system operations like RootImage or BindPaths are in effect.

(cherry picked from commit 412a6c646ced41ac9b12c4a4f97e34c0350e1040)

5 years agosystemd-analyze: fixed typo in documentation
Tobias Stoeckmann [Tue, 31 Dec 2019 12:56:02 +0000 (13:56 +0100)]
systemd-analyze: fixed typo in documentation

The example shows the output of critical-chain, which means
that the title is wrong.

(cherry picked from commit be78e0f07b2379f51e6530269be953c0b520c447)

5 years agotest-condition: fix group check condition
Felipe Sateler [Tue, 24 Dec 2019 01:04:44 +0000 (22:04 -0300)]
test-condition: fix group check condition

We were checking the uid, whereas we should have checked the gid

(cherry picked from commit 98cd752a285c0fba84b8d98f3ba255ed4d11c881)

5 years agoumount: show correct error message
Lennart Poettering [Fri, 20 Dec 2019 15:59:42 +0000 (16:59 +0100)]
umount: show correct error message

We fucked up errno vs. r two times, let's correct that.

While we are at it, let's handle the error first, like we usually do,
and the clean case without indentation.

(cherry picked from commit 88287615e631d2023ff337a08b6ff45b1cfa58ee)

5 years agoRevert "Drop dbus activation stub service"
Lennart Poettering [Fri, 20 Dec 2019 11:26:17 +0000 (12:26 +0100)]
Revert "Drop dbus activation stub service"

This reverts commit 07125d24eedb71693b3bf2b1f0730cd01aaac2dd.

In contrast to what is claimed in #13396 dbus-broker apparently does
care for the service file to be around, and otherwise will claim
"Service Not Activatable" in the time between systemd starting up the
broker and connecting to it, which the stub service file is supposed to
make go away.

Reverting this makes the integration test suite pass again on host with
dbus-broker (i.e. current Fedora desktop).

Tested with dbus-broker-21-6.fc31.x86_64.

(cherry picked from commit b895fa08e6809ab54e20888f7d01ae848272e981)

5 years agoman: add section about user manager units
Zbigniew Jędrzejewski-Szmek [Wed, 18 Dec 2019 10:23:30 +0000 (11:23 +0100)]
man: add section about user manager units

(cherry picked from commit 277519db51291c7e11b2120016c39914520f5009)

5 years agoman: add remote-*.targets to the bootup sequence
Zbigniew Jędrzejewski-Szmek [Wed, 18 Dec 2019 09:32:03 +0000 (10:32 +0100)]
man: add remote-*.targets to the bootup sequence

I think this makes it easier to see the difference between local and remote
mounts.

Make the graph a bit narrower while at it.

(cherry picked from commit f71502c49fd9fce6328f9364f600578383551dce)

5 years agotime-util: also use 32bit hack on EOVERFLOW
Lennart Poettering [Wed, 18 Dec 2019 13:57:11 +0000 (14:57 +0100)]
time-util: also use 32bit hack on EOVERFLOW

As per
https://github.com/systemd/systemd/issues/14362#issuecomment-566722686
let's also prepare for EOVERFLOW.

(cherry picked from commit 9e7c8f64cfda101496f56f5546097221e8ad5d6a)

5 years ago[man] note which UID ranges will get user journals
Anita Zhang [Thu, 19 Dec 2019 00:09:49 +0000 (16:09 -0800)]
[man] note which UID ranges will get user journals

Fixes #13926

(cherry picked from commit a1533ad73f099ed7f2c01a69c23ad700fbf249f3)

5 years ago[man] fix URL
Anita Zhang [Thu, 19 Dec 2019 00:08:53 +0000 (16:08 -0800)]
[man] fix URL

(cherry picked from commit d59fc29bb742e4258dab0606ab1a95cfaa1ea473)

5 years agoanalyze: badness if neither of RootImage and RootDirectory exists
Topi Miettinen [Wed, 18 Dec 2019 18:25:03 +0000 (20:25 +0200)]
analyze: badness if neither of RootImage and RootDirectory exists

Instead of requiring both RootImage and RootDirectory directives, give badness
points if neither is present. Fixes conversion in d737b451f.

(cherry picked from commit d909b40fda52d6822a0f7201f9c17818df2bd091)

5 years agonetwork: introduce AddPrefixRoute= and deprecate PrefixRoute=
Yu Watanabe [Sat, 7 Dec 2019 15:32:36 +0000 (00:32 +0900)]
network: introduce AddPrefixRoute= and deprecate PrefixRoute=

PrefixRoute= was added by e63be0847c39bfdca45c25c505922814374581a7,
but unfortunately, the meaning of PrefixRoute= is inverted; when true
IFA_F_NOPREFIXROUTE flag is added. This introduces AddPrefixRoute=
setting.

(cherry picked from commit de697db05b08464180af4a257f6df88b00d60b9e)

5 years agoshared/dropin: fix assert for invalid drop-in
Topi Miettinen [Tue, 17 Dec 2019 13:47:37 +0000 (15:47 +0200)]
shared/dropin: fix assert for invalid drop-in

Don't try to show top level drop-in for non-existent units or when trying to
instantiate non-instantiated units:

$ systemctl cat nonexistent@.service
Assertion 'name' failed at src/shared/dropin.c:143, function unit_file_find_dirs(). Aborting.
$ systemctl cat systemd-journald@.service
Assertion 'name' failed at src/shared/dropin.c:143, function unit_file_find_dirs(). Aborting.

(cherry picked from commit 7a670b1dd981c645064f69faf85b04620aadbafb)

5 years agoinitrd: make udev cleanup service confict trigger and settle too
Dimitri John Ledkov [Fri, 13 Dec 2019 23:22:51 +0000 (23:22 +0000)]
initrd: make udev cleanup service confict trigger and settle too

Otherwise, systemd-udev-trigger|settle.service that ran in the initrd may
ramain active, and never re-run again from the system root.

This is observed by forexample examining ESP with udevadm info, which in the
initrd has all the ID_* variables, and none of them in fully booted system.

(cherry picked from commit f27bb6abd3b825034e0dde631ae3047128d2162d)

5 years agoman: we support growing xfs too these days
Lennart Poettering [Tue, 17 Dec 2019 16:30:55 +0000 (17:30 +0100)]
man: we support growing xfs too these days

(cherry picked from commit 76b73ce21c0a4063696bd7c777ae12d99cd8fb69)

5 years agotime-util: deal with systems where userspace has 64bit time_t but kernel does not
Lennart Poettering [Tue, 17 Dec 2019 10:22:17 +0000 (11:22 +0100)]
time-util: deal with systems where userspace has 64bit time_t but kernel does not

Fixes: #14362
(cherry picked from commit 601f91bec5646a9c6fbd4f1ec5f1b4ae28d3a770)

5 years ago[import] fix stdin/stdout pipe behavior in import/export tar/raw
Anita Zhang [Tue, 17 Dec 2019 09:08:04 +0000 (01:08 -0800)]
[import] fix stdin/stdout pipe behavior in import/export tar/raw

The code existed in machinectl to use stdin/stdout if the path for
import/export tar/raw was empty or dash (-) but a check to
`fd_verify_regular` in importd prevented it from working.

Update the check instead to explicitly check for regular file or
pipe/fifo.

Fixes #14346

(cherry picked from commit 1209ef94bd09bdc67a7b51f084910a5982f2f010)

5 years agosystemctl: show what verbs support --dry-run in the help page
Bart Willems [Mon, 16 Dec 2019 15:45:59 +0000 (16:45 +0100)]
systemctl: show what verbs support --dry-run in the help page

Signed-off-by: Bart Willems <bwillems@protonmail.com>
(cherry picked from commit 4afb4a9cc574caccb1bca1de0e4012fd0ac37128)

5 years agocryptsetup-generator: unconfuse writing of the device timeout
Zbigniew Jędrzejewski-Szmek [Tue, 3 Dec 2019 15:06:47 +0000 (16:06 +0100)]
cryptsetup-generator: unconfuse writing of the device timeout

The code was using timeout=0 as the default option string. This option string
was ultimately passed to generator_write_timeouts(), which only looks for
comment=systemd.device-timeout= or x-systemd.device-timeout=, i.e. the whole
call path was bogus. Let's rework this: generator_write_timeouts() now writes
any timeouts if configured by the user. create_disk() writes out it's own
timeout, but with lower priority. Since the code path that was calling
timeout=0 was not effective, the only change is that we stop overwriting the
timeout if explicitly configured by the user.

In both code paths, ignore failure to write.

(cherry picked from commit 7cecc563163f539c497ecdf5ab00729fcd8c97c1)

5 years agoshared/install: log syntax error for invalid DefaultInstance=
Zbigniew Jędrzejewski-Szmek [Fri, 13 Dec 2019 18:25:50 +0000 (19:25 +0100)]
shared/install: log syntax error for invalid DefaultInstance=

Ideally, we would want to report this over back over dbus. But that is pretty hard,
because the unitfile parsing logic doesn't provide any feedback.
systemd-analyze verify also doesn't notice the issue, because it doesn't look
at the [Install] section at all. Let's print a message in the logs at least.

(cherry picked from commit e51712963b817995781534975470f1b54171702b)

5 years agoshared/install: provide a nicer error message for invalid WantedBy=/Required= values
Zbigniew Jędrzejewski-Szmek [Fri, 13 Dec 2019 17:36:29 +0000 (18:36 +0100)]
shared/install: provide a nicer error message for invalid WantedBy=/Required= values

$ build/systemctl --user cat badinstall
 # /home/zbyszek/.config/systemd/user/badinstall.service
[Service]
ExecStart=true

[Install]
WantedBy=asdf

$ build/systemctl --user enable badinstall
Failed to enable unit: "asdf" is not a valid unit name.

Fixes #4209.

(cherry picked from commit d7ceaf72618aa2466fc4465ce8fcebf0cba68cc1)

5 years agonetwork: set ipv6 mtu after link-up or device mtu change v244.1
Dan Streetman [Tue, 29 Oct 2019 14:31:58 +0000 (10:31 -0400)]
network: set ipv6 mtu after link-up or device mtu change

The kernel resets the ipv6 mtu after NETDEV_UP or NETDEV_CHANGEMTU event,
so we must reset the ipv6 mtu to our configured value after we detect
IFF_UP flag set or after we set the device mtu.

Fixes: #13914.
(cherry picked from commit d236718c167af46bbf4460fc6b82db8396bd43a5)

5 years agoman: fix typo in net-naming-scheme man page
Lennart Poettering [Wed, 11 Dec 2019 10:52:00 +0000 (11:52 +0100)]
man: fix typo in net-naming-scheme man page

(cherry picked from commit 955ed5d540fe090687e085d894381f6bf0e57688)

5 years agonetwork: tc: drop unused element
Yu Watanabe [Wed, 11 Dec 2019 11:09:11 +0000 (20:09 +0900)]
network: tc: drop unused element

(cherry picked from commit 1f9dd3bfdf0a44e919f35b0e101fa2b5687952b5)

5 years agoman: fix typos (#14304)
cheese1 [Wed, 11 Dec 2019 09:33:13 +0000 (10:33 +0100)]
man: fix typos (#14304)

(cherry picked from commit f32d15b0e4f5a0d2c31b22cb66f690a158ae9dfd)

5 years agoipv4ll: do not reset conflict counter on restart
AJ Bagwell [Tue, 10 Dec 2019 16:27:31 +0000 (16:27 +0000)]
ipv4ll: do not reset conflict counter on restart

Don't reset the conflict counter when trying a new pseudo random
address, so that after trying 10 addresses the londer timeout is used in
accordance with the RFC

Fixes #14299.

(cherry picked from commit e92b60b20f21111a0c28135c1b5c78fc851a4f15)

5 years agomacro: avoid subtraction overflow in ALIGN_POWER2()
Lennart Poettering [Mon, 9 Dec 2019 17:24:41 +0000 (18:24 +0100)]
macro: avoid subtraction overflow in ALIGN_POWER2()

(cherry picked from commit 85c267afa7ce4697a1231649de815b2556b3950f)

5 years agotest-network: add a test case for SendOption=
Yu Watanabe [Sun, 8 Dec 2019 10:54:49 +0000 (19:54 +0900)]
test-network: add a test case for SendOption=

(cherry picked from commit 0810e6d787bd2675630aba94a08f0da7498b3966)

5 years agonetwork: fix segfault in parsing SendOption=
Yu Watanabe [Sun, 8 Dec 2019 10:54:20 +0000 (19:54 +0900)]
network: fix segfault in parsing SendOption=

Fixes #14283.

(cherry picked from commit 83b56c70e6bcca3359b26197a7463e4c22868df1)

5 years agoseccomp: real syscall numbers are >= 0
Mike Gilbert [Fri, 6 Dec 2019 19:28:13 +0000 (14:28 -0500)]
seccomp: real syscall numbers are >= 0

Real syscall numbers start at 0. The fake seccomp values seem to be
strictly less than 0.

Fixes: 4df8fe8415eaf4abd5b93c3447452547c6ea9e5f
(cherry picked from commit fb4b0465abbd96e6d342e5606c61c919c99a82ff)

5 years agonetwork: fix copy and paste mistake
Yu Watanabe [Sat, 7 Dec 2019 14:20:37 +0000 (23:20 +0900)]
network: fix copy and paste mistake

(cherry picked from commit 6d62ec61b9413a78757c758a940cef13f6ce5063)

5 years agonetwork: do not drop foreign config if interface is in initialized state
Yu Watanabe [Thu, 5 Dec 2019 10:54:29 +0000 (19:54 +0900)]
network: do not drop foreign config if interface is in initialized state

If the interface is in initialized state, no network file is assigned to
the interface. If an interface is not managed by networkd, previously,
the foreign configs of the interface was dropped.

Fixes #14250.

(cherry picked from commit 2c7b826ddf52bd09956815dd8e52329e62ce985a)

5 years agoseccomp: mmap test results depend on kernel/libseccomp/glibc
Christian Ehrhardt [Wed, 4 Dec 2019 10:44:32 +0000 (11:44 +0100)]
seccomp: mmap test results depend on kernel/libseccomp/glibc

Like with shmat already the actual results of the test
test_memory_deny_write_execute_mmap depend on kernel/libseccomp/glibc
of the platform it is running on.

There are known-good platforms, but on the others do not assert success
(which implies test has actually failed as no seccomp blocking was achieved),
but instead make the check dependent to the success of the mmap call
on that platforms.

Finally the assert of the munmap on that valid pointer should return ==0,
so that is what the check should be for in case of p != MAP_FAILED.

Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
(cherry picked from commit 49219b5c2a654ee6639887aa21a78b41da0576f1)

5 years agoseccomp: use per arch shmat_syscall
Christian Ehrhardt [Wed, 27 Nov 2019 09:53:50 +0000 (10:53 +0100)]
seccomp: use per arch shmat_syscall

At the beginning of seccomp_memory_deny_write_execute architectures
can set individual filter_syscall, block_syscall, shmat_syscall values.
The former two are then used in the call to add_seccomp_syscall_filter
but shmat_syscall is not.

Right now all shmat_syscall values are the same, so the change is a
no-op, but if ever an architecture is added/modified this would be a
subtle source for a mistake so fix it by using shmat_syscall later.

Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
(cherry picked from commit 5ef3ed97e3c718be790b1f38928ca66cb68250a8)

5 years agoseccomp: ensure rules are loaded in seccomp_memory_deny_write_execute
Christian Ehrhardt [Wed, 27 Nov 2019 08:57:55 +0000 (09:57 +0100)]
seccomp: ensure rules are loaded in seccomp_memory_deny_write_execute

If seccomp_memory_deny_write_execute was fatally failing to load rules it
already returned a bad retval.
But if any adding filters failed it skipped the subsequent seccomp_load and
always returned an rc of 0 even if no rule was loaded at all.

Lets fix this requiring to (non fatally-failing) load at least one rule set.

Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
(cherry picked from commit 903659e7b242c3cc897e32835f1918d380b24e5f)

5 years agoseccomp: fix multiplexed system calls
Christian Ehrhardt [Wed, 27 Nov 2019 08:52:07 +0000 (09:52 +0100)]
seccomp: fix multiplexed system calls

Since libseccomp 2.4.2 more architectures have shmat handled as multiplexed
call. Those will fail to be added due to seccomp_rule_add_exact failing
on them since they'd need to add multiple rules [1].
See the discussion at https://github.com/seccomp/libseccomp/issues/193

After discussions about the options rejected [2][3] the initial thought of
a fallback to the non '_exact' version of the seccomp rule adding the next
option is to handle those now affected (i386, s390, s390x) the same way as
ppc which ignores and does not block shmat.

[1]: https://github.com/seccomp/libseccomp/issues/193
[2]: https://github.com/systemd/systemd/pull/14167#issuecomment-559136906
[3]: https://github.com/systemd/systemd/commit/469830d1

(cherry picked from commit bed4668d1daeb640c1d55e79e6a1725c81118e39)

5 years agoFix typo (duplicate "or")
Timo Wilken [Thu, 5 Dec 2019 18:36:57 +0000 (18:36 +0000)]
Fix typo (duplicate "or")

This fixes a double "or" in the text of `systemctl --help`.

(cherry picked from commit ab4fae0c8c3fae4d3d67bf6e1176bbda1dfa208e)

5 years agonetwork: if /sys is rw, then udev should be around
Yu Watanabe [Wed, 4 Dec 2019 10:12:36 +0000 (19:12 +0900)]
network: if /sys is rw, then udev should be around

This switches detect_container() to path_is_read_only_rw("/sys"), as if
systemd-udevd.service is conditionalized with that way.

This also updates the log message.

(cherry picked from commit bf331d87171b7750d1c72ab0b140a240c0cf32c3)

5 years agonspawn: do not fail if udev is not running
Yu Watanabe [Mon, 2 Dec 2019 15:51:44 +0000 (00:51 +0900)]
nspawn: do not fail if udev is not running

If /sys is read only filesystem, e.g., nspawn is running in container,
then usually udev is not running. In such a case, let's assume that
the interface is already initialized. Also, this makes nspawn refuse
to use the network interface which is under renaming.

Fixes #14223.

(cherry picked from commit 26208d5b9674079dcf2c9d301f09a7c7b23bfdc3)

5 years agoCreate parent directories when creating systemd-private subdirs
Jérémy Rosen [Fri, 29 Nov 2019 19:28:35 +0000 (20:28 +0100)]
Create parent directories when creating systemd-private subdirs

This is needed when systemd is compiled without systemd-tmpfiles

(cherry picked from commit a652f050a78616efb9e75c5b49c925400c64dded)

5 years agonetwork: do not return error but return UINT64_MAX if speed meter is disabled
Yu Watanabe [Mon, 2 Dec 2019 15:29:44 +0000 (00:29 +0900)]
network: do not return error but return UINT64_MAX if speed meter is disabled

Fixes #14222.

(cherry picked from commit e813de549b17f2601750c95825d8e0740cbee38c)

5 years agocore: swap priority can be negative
Topi Miettinen [Tue, 3 Dec 2019 18:36:37 +0000 (20:36 +0200)]
core: swap priority can be negative

Negative priorities are useful for swap targets which should be only used as
last resort.

(cherry picked from commit 7477451b691d288dad67b4c8ce9e519e9b75770d)

5 years agonetworkctl: fix to show BSSID
Yu Watanabe [Mon, 2 Dec 2019 15:39:28 +0000 (00:39 +0900)]
networkctl: fix to show BSSID

This fixes an issue caused by a typo in
78404d22cca9cbbc8adb9dd7248da2f2725b1dbc.

(cherry picked from commit 33ebda2e81aa1f8cab5c3e5e4449dfd9ffa1583d)

5 years agosystemctl: enhance message about kexec missing kernel
Zbigniew Jędrzejewski-Szmek [Tue, 3 Dec 2019 11:54:52 +0000 (11:54 +0000)]
systemctl: enhance message about kexec missing kernel

Fixes #7730.

(cherry picked from commit 2fec5854baa6f1262b9cb827bc4a8eb27b376b7d)

5 years agoFixup typo in NEWS
Slava Kardakov [Mon, 2 Dec 2019 20:39:59 +0000 (23:39 +0300)]
Fixup typo in NEWS

(cherry picked from commit 1e904320aacb21b1b9563015cb8a7f2014088920)

6 years agoMerge pull request #14201 from poettering/v244-final v244
Zbigniew Jędrzejewski-Szmek [Fri, 29 Nov 2019 16:32:36 +0000 (17:32 +0100)]
Merge pull request #14201 from poettering/v244-final

V244 final

6 years agonspawn: allow Capability=all in systemd.nspawn [EXEC] section
afg [Fri, 29 Nov 2019 09:08:05 +0000 (17:08 +0800)]
nspawn: allow Capability=all in systemd.nspawn [EXEC] section

Just like --capability=all is allowed in the systemd-nspawn
command line.

6 years agohwdb: run another 'hwdb-update'
Lennart Poettering [Fri, 29 Nov 2019 13:35:54 +0000 (14:35 +0100)]
hwdb: run another 'hwdb-update'

6 years agoNEWS: update for final 244
Lennart Poettering [Fri, 29 Nov 2019 13:29:03 +0000 (14:29 +0100)]
NEWS: update for final 244

6 years agoREADME: move logo up, like on brand.systemd.io README
Lennart Poettering [Fri, 29 Nov 2019 11:57:22 +0000 (12:57 +0100)]
README: move logo up, like on brand.systemd.io README

6 years agoREADME: use more appropriate logo format for README
Lennart Poettering [Fri, 29 Nov 2019 10:50:59 +0000 (11:50 +0100)]
README: use more appropriate logo format for README

6 years agoupdate TODO
Lennart Poettering [Fri, 29 Nov 2019 10:51:04 +0000 (11:51 +0100)]
update TODO

6 years agonetwork: fix double free()
Yu Watanabe [Thu, 28 Nov 2019 15:37:44 +0000 (00:37 +0900)]
network: fix double free()

6 years agoman: use literal tag at one more place
Yu Watanabe [Thu, 28 Nov 2019 18:26:57 +0000 (03:26 +0900)]
man: use literal tag at one more place

6 years agoman: document sd_event_source_set_floating()
Lennart Poettering [Wed, 27 Nov 2019 16:11:44 +0000 (17:11 +0100)]
man: document sd_event_source_set_floating()

Let's make sure we get back to 100% man page documentation coverage of
our sd-event APIs. We are bad enough at the others, let's get these ones
right at least.

6 years agoman: use mkswap@ instead of makeswap@
Jan Tojnar [Thu, 28 Nov 2019 11:42:01 +0000 (12:42 +0100)]
man: use mkswap@ instead of makeswap@

That is what is linked from systemd.swap(5) and also what the systemd.generator produces.

6 years agojournald: don't ask for the machine ID if we don't need it
Lennart Poettering [Mon, 25 Nov 2019 13:08:53 +0000 (14:08 +0100)]
journald: don't ask for the machine ID if we don't need it

6 years agojournalctl: pager_close() calls fflush(stdout) anyway as first thing
Lennart Poettering [Tue, 26 Nov 2019 10:28:33 +0000 (11:28 +0100)]
journalctl: pager_close() calls fflush(stdout) anyway as first thing

6 years agojournald: remove unused field
Lennart Poettering [Wed, 27 Nov 2019 12:03:26 +0000 (13:03 +0100)]
journald: remove unused field

6 years agojournalctl: return EOPNOTSUPP if pcre is not enabled
Lennart Poettering [Mon, 25 Nov 2019 17:44:40 +0000 (18:44 +0100)]
journalctl: return EOPNOTSUPP if pcre is not enabled

6 years agoman: don't claim journalctl would still use signals
Lennart Poettering [Wed, 27 Nov 2019 18:24:44 +0000 (19:24 +0100)]
man: don't claim journalctl would still use signals

It's using the varlink interface these days.

6 years agoman: add reference to journald man page from systemd.journal-fields(7)
Lennart Poettering [Wed, 27 Nov 2019 20:29:32 +0000 (21:29 +0100)]
man: add reference to journald man page from systemd.journal-fields(7)

We had none so far. Which is weird.

6 years agoman: apparently we lowercased STDOUT/STDERR everywhere else in docs, do so here too
Lennart Poettering [Thu, 28 Nov 2019 09:01:49 +0000 (10:01 +0100)]
man: apparently we lowercased STDOUT/STDERR everywhere else in docs, do so here too

6 years agoMerge pull request #14179 from poettering/help-fixlets
Lennart Poettering [Thu, 28 Nov 2019 13:22:30 +0000 (14:22 +0100)]
Merge pull request #14179 from poettering/help-fixlets

--help fixlets

6 years agoman: drop reference to machined, add one for journald instead
Lennart Poettering [Thu, 28 Nov 2019 09:36:08 +0000 (10:36 +0100)]
man: drop reference to machined, add one for journald instead

We dropped documentation from sd_journal_open_container() long ago
(since the call is obsolete), hence drop the reference to machined. But
add one in for journald instead.

6 years agonotify: add color to --help
Lennart Poettering [Thu, 28 Nov 2019 09:51:05 +0000 (10:51 +0100)]
notify: add color to --help

We do that for most tools now, do so here now, too.

6 years agonspawn: highlight description string in --help text
Lennart Poettering [Thu, 28 Nov 2019 09:51:31 +0000 (10:51 +0100)]
nspawn: highlight description string in --help text

We do so in most tools now, do so here, too.

6 years agoMerge pull request #14166 from keszybz/transient-unit-settings
Yu Watanabe [Thu, 28 Nov 2019 08:23:30 +0000 (17:23 +0900)]
Merge pull request #14166 from keszybz/transient-unit-settings

Fix docs and some transient unit property passing

6 years agotest-functions: make sure we use the right library path for binaries without RPATH
Lennart Poettering [Wed, 27 Nov 2019 17:25:52 +0000 (18:25 +0100)]
test-functions: make sure we use the right library path for binaries without RPATH

Meson appears to set the rpath only for some binaries it builds, but not
all. (The rules are not clear to me, but that's besides the point of
this commit).

Let's make sure if our test script operates on a binary that has no
rpath set we fall back preferably to the BUILD_DIR rather than directly
to the host.

This matters if a test uses a libsystemd symbol introduced in a version
newer than the one on the host. In that case "ldd" will not work on the
test binary if rpath is not set. With this fix that behaviour is
corrected, and "ldd" works correctly even in this case.

(Or in other words: before this fix on binaries lacking rpath we'd base
dependency info on the libraries of the host, not the buidl tree, if
they exist in both.)

6 years agoshared/ask-password-api: modify keyctl break value
Kevin Kuehler [Thu, 28 Nov 2019 00:35:15 +0000 (16:35 -0800)]
shared/ask-password-api: modify keyctl break value

We can break if KEYCTL_READ return value is equal to our buffer size.

From keyctl(2):

On a successful return, the return value is always the total size of
the payload data.  To determine whether the buffer was of sufficient
size, check to see that the return value is less than or equal to the
value supplied in arg4.

6 years agosystemctl: fix indentation of cgroup tree
Lennart Poettering [Wed, 27 Nov 2019 13:52:30 +0000 (14:52 +0100)]
systemctl: fix indentation of cgroup tree

Follow-up for 0d588deae21234c9a9d64d9eddbcbe7da5c9a39d.

In that commit the output got moved a 2 chars to the right, hence make
sure to also shift the cgroup tree to the right, so that it gets
properly aligned under the cgroup path again.

6 years agocryptsetup: reduce the chance that we will be OOM killed
Michal Sekletár [Wed, 27 Nov 2019 13:27:58 +0000 (14:27 +0100)]
cryptsetup: reduce the chance that we will be OOM killed

cryptsetup introduced optional locking scheme that should serialize
unlocking keyslots which use memory hard key derivation
function (argon2). Using the serialization should prevent OOM situation
in early boot while unlocking encrypted volumes.

6 years agoMerge pull request #14164 from poettering/exec-start-transient-fix
Lennart Poettering [Wed, 27 Nov 2019 17:32:30 +0000 (18:32 +0100)]
Merge pull request #14164 from poettering/exec-start-transient-fix

fix ExecStart= line generation for transient units

6 years agoMerge pull request #14145 from poettering/process-bypass
Zbigniew Jędrzejewski-Szmek [Wed, 27 Nov 2019 13:53:39 +0000 (14:53 +0100)]
Merge pull request #14145 from poettering/process-bypass

/proc bypass in various process-util.c calls

6 years agodoc: update list of transient units
Zbigniew Jędrzejewski-Szmek [Wed, 27 Nov 2019 12:47:01 +0000 (13:47 +0100)]
doc: update list of transient units

Doing this manually seem to work only so well, but it is indeed hard to generate
automatically. Let's add the stuff that is missing for now.

AddRef= is not a unit file setting, remove it from the list.

6 years agopid1: make TimeoutAbortSec settable for transient units
Zbigniew Jędrzejewski-Szmek [Wed, 27 Nov 2019 12:42:57 +0000 (13:42 +0100)]
pid1: make TimeoutAbortSec settable for transient units

It was documented to be, but implementation was missing.

6 years agopid1: fix setting of DefaultTimeoutAbortSec
Zbigniew Jędrzejewski-Szmek [Wed, 27 Nov 2019 12:13:17 +0000 (13:13 +0100)]
pid1: fix setting of DefaultTimeoutAbortSec

This partially reverts a07a7324adf504381e9374d1f1a5db6edaa46435.
We have two pieces of information: the value and a boolean.
config_parse_timeout_abort() added in the reverted commit would write
the boolean to the usec_t value, making a mess.

The code is reworked to have just one implementation and two wrappers
which pass two pointers.

6 years agoshared/conf-parser: remove unnecessary whitespace skipping
Zbigniew Jędrzejewski-Szmek [Wed, 27 Nov 2019 11:33:48 +0000 (12:33 +0100)]
shared/conf-parser: remove unnecessary whitespace skipping

The conf-parser machinery already removed whitespace before and after "=", no
need to repeat this step.

The test is adjusted to pass. It was testing an code path that doesn't happen
normally, no point in doing that.

6 years agoshared/bus-unit-util: word wrap
Zbigniew Jędrzejewski-Szmek [Wed, 27 Nov 2019 10:44:57 +0000 (11:44 +0100)]
shared/bus-unit-util: word wrap

Having all the names squished on the same line makes it hard to see
what settings are missing.

6 years agocore: prefer non-@ syntax for ExecStart=
Lennart Poettering [Wed, 27 Nov 2019 11:05:57 +0000 (12:05 +0100)]
core: prefer non-@ syntax for ExecStart=

If the zeroth and first argv[] element on the same we don't need to
generate the "@" syntax for ExecStart= and friends.

6 years agocore: write out correct field name when creating transient service units
Lennart Poettering [Wed, 27 Nov 2019 11:05:38 +0000 (12:05 +0100)]
core: write out correct field name when creating transient service units

6 years agoMerge pull request #14160 from mwilck/fix-shutdown-hang
Yu Watanabe [Wed, 27 Nov 2019 10:16:12 +0000 (19:16 +0900)]
Merge pull request #14160 from mwilck/fix-shutdown-hang

Fix shutdown hang caused by recent udev change

6 years agodoc: drop rhs from transient settings list
Zbigniew Jędrzejewski-Szmek [Wed, 27 Nov 2019 10:04:36 +0000 (11:04 +0100)]
doc: drop rhs from transient settings list

I don't know why these particular ones had them.

6 years agoman/systemd.link: Add missing verb *be*
Paul Menzel [Tue, 26 Nov 2019 21:52:17 +0000 (22:52 +0100)]
man/systemd.link: Add missing verb *be*

6 years agoudevd: don't use monitor after manager_exit()
Martin Wilck [Tue, 26 Nov 2019 17:39:09 +0000 (18:39 +0100)]
udevd: don't use monitor after manager_exit()

If udevd receives an exit signal, it releases its reference on the udev
monitor in manager_exit(). If at this time a worker is hanging, and if
the event timeout for this worker expires before udevd exits, udevd
crashes in on_sigchld()->udev_monitor_send_device(), because the monitor
has already been freed.

Fix this by testing the validity of manager->monitor in on_sigchld().

6 years agoRevert "udevd: fix crash when workers time out after exit is signal caught"
Martin Wilck [Tue, 26 Nov 2019 17:36:46 +0000 (18:36 +0100)]
Revert "udevd: fix crash when workers time out after exit is signal caught"

This reverts commit 5db454b8031c58a743cc4ee3d5d1dd01dcff17e8.
See https://github.com/systemd/systemd/issues/14128