1
0
mirror of https://github.com/systemd/systemd.git synced 2025-02-09 13:57:42 +03:00

43058 Commits

Author SHA1 Message Date
Lennart Poettering
3a827125e7 man: stop recommending modprobe -abq in ExecStartPre= 2020-01-07 19:00:56 +01:00
Lennart Poettering
d5016c21d7 units: tweaks to modprobe@.service
Let's use uppercase wording in the description string, like we usually
do.

Let's allow using this service in early boot.

If it's pulled into the initial transaction it's better to finish
loading this before sysinit.target.

Don't bother with this in containers that lack CAP_SYS_MODULE
2020-01-07 18:54:24 +01:00
Lennart Poettering
867af7282b unit: make sure to pull in modprobe@loop.service when RootImage= is used with DeviceAllow=
Fixes: #14214
2020-01-07 18:53:31 +01:00
Lennart Poettering
07141aa005 bpf-devices: line-break some overly long function signatures 2020-01-07 18:41:36 +01:00
Iain Lane
625077264b units: Split modprobing out into a separate service unit
Devices referred to by `DeviceAllow=` sandboxing are resolved into their
corresponding major numbers when the unit is loaded by looking at
`/proc/devices`. If a reference is made to a device which is not yet
available, the `DeviceAllow` is ignored and the unit's processes cannot
access that device.

In both logind and nspawn, we have `DeviceAllow=` lines, and `modprobe`
in `ExecStartPre=` to load some kernel modules. Those kernel modules
cause device nodes to become available when they are loaded: the device
nodes may not exist when the unit itself is loaded. This means that the
unit's processes will not be able to access the device since the
`DeviceAllow=` will have been resolved earlier and denied it.

One way to fix this would be to re-evaluate the available devices and
re-apply the policy to the cgroup, but this cannot work atomically on
cgroupsv1. So we fall back to a second approach: instead of running
`modprobe` via `ExecStartPre`, we move this out to a separate unit and
order it before the units which want the module.

Closes #14322.
Fixes: #13943.
2020-01-07 18:37:30 +01:00
Lennart Poettering
3ce252d0e0 udev: use dot_or_dot_dot() where appropriate 2020-01-07 18:02:53 +01:00
Lennart Poettering
a1686563de man: fix documentation of IBM VIO device naming
We generate "v" in two different ways, and they got mixed up.
2020-01-07 18:02:15 +01:00
Lennart Poettering
e232c307c0 man: slightly extend documentation on difference between ID_NET_NAME_ONBOARD and ID_NET_LABEL_ONBOARD 2020-01-07 18:01:56 +01:00
Zbigniew Jędrzejewski-Szmek
e9f0c5d08c shared/sleep: use stat() instead of open()+fstat() in one place
No functional change.
2020-01-07 16:20:35 +01:00
Yu Watanabe
7a182f1034 udev: do not use exact match of file permission
This partially reverts 25de7aa7b90c23d33ea50ada1e50c5834a414237.

Fixes #14473.
2020-01-07 15:16:52 +01:00
Lennart Poettering
983ffdb0bf
Merge pull request #14481 from yuwata/virt-string-table
virt: use string table to detect VM or container
2020-01-07 15:16:31 +01:00
Yu Watanabe
6b50cb5ca9 nspawn: set original ifname as alternative if it is truncated 2020-01-07 15:15:59 +01:00
Yu Watanabe
98b0299479 network: append INTERFACE= attributes for logs corresponds to a netif 2020-01-07 22:20:43 +09:00
Yu Watanabe
fc79e6ff5e test-network: suppress logs in status command 2020-01-07 22:20:43 +09:00
Yu Watanabe
10c71c3605 networkctl: status command also shows logs of networkd
Closes #14050.
2020-01-07 22:20:37 +09:00
Yu Watanabe
b6cea5496a man: drop unnecessary white space 2020-01-07 13:25:13 +01:00
Lennart Poettering
67861acdf3 locale-util: extend comments on unicode glyph use, and drop mdash (that actually was an ndash)
Let's add the actual unicode names of the glyphs we use. Let's also add
in comments what the width expectations of these glyphs are on the
console.

Also, remove the "mdash" definition. First of all it wasn't used, but
what's worse the glyph encoded was actually an "ndash"...

Fixes: #14075
2020-01-07 13:21:22 +01:00
Lennart Poettering
a2a64d3ac9
Merge pull request #14420 from DaanDeMeyer/nspawn-fix-read-only-overlay-rootfs
nspawn: Don't mount read-only if we have a custom mount on root.
2020-01-07 12:14:24 +01:00
Yu Watanabe
214c5bae09 test-network: add test for Gateway=DHCP 2020-01-07 19:11:19 +09:00
Yu Watanabe
1985c54ff3 network: static routes via DHCP gateway
This makes Gateway= also take "DHCP". If "DHCP" is set, then the gateway
address provided by DHCP or IPv6 RA is used.

Closes #8213.
2020-01-07 19:10:54 +09:00
Yu Watanabe
25454a0c34 virt: drop trailing white spaces 2020-01-07 11:50:36 +09:00
Yu Watanabe
735ea55f5c virt: use string table to detect VM or container 2020-01-07 11:50:36 +09:00
Frantisek Sumsal
0e97a910a6 pkcs11-util: don't mask return value of the first asprintf()
Fixes CID#1409666
2020-01-07 10:30:52 +09:00
Yu Watanabe
d6246fd498 network: lower the log-level of harmless message
Closes #14285.
2020-01-07 10:29:40 +09:00
Yu Watanabe
11b8568f26 meson: drop unnecessary linking of libudev_core 2020-01-07 10:29:17 +09:00
Yu Watanabe
a26c307320 sd-netlink: fix copy and paste mistake 2020-01-06 19:18:19 +01:00
Lennart Poettering
53dc5fbc41 man: change links to container interface doc to https://systemd.io/
Now that we converted the documentation we should also link to it.
2020-01-06 18:15:07 +01:00
Lennart Poettering
635dea2783 docs: move container interface docs from wiki to markdown
Let's move
https://www.freedesktop.org/wiki/Software/systemd/ContainerInterface/
into our tree and convert it to Markdown.

This also incldues some minor fixes and other changes.
2020-01-06 18:12:22 +01:00
Lennart Poettering
fc67a943d9 core: drop initial ListNames() bus call from PID 1
Previously, when first connecting to the bus after connecting to it we'd
issue a ListNames() bus call to the driver to figure out which bus names
are currently active. This information was then used to initialize the
initial state for services that use BusName=.

This change removes the whole code for this and replaces it with
something vastly simpler.

First of all, the ListNames() call was issues synchronosuly, which meant
if dbus was for some reason synchronously calling into PID1 for some
reason we'd deadlock. As it turns out there's now a good chance it does:
the nss-systemd userdb hookup means that any user dbus-daemon resolves
might result in a varlink call into PID 1, and dbus resolves quite a lot
of users while parsing its policy. My original goal was to fix this
deadlock.

But as it turns out we don't need the ListNames() call at all anymore,
since #12957 has been merged. That PR was supposed to fix a race where
asynchronous installation of bus matches would cause us missing the
initial owner of a bus name when a service is first started. It fixed it
(correctly) by enquiring with GetOwnerName() who currently owns the
name, right after installing the match. But this means whenever we start watching a bus name we anyway
issue a GetOwnerName() for it, and that means also when first connecting
to the bus we don't need to issue ListNames() anymore since that just
tells us the same info: which names are currently owned.

hence, let's drop ListNames() and instead make better use of the
GetOwnerName() result: if it failed the name is not owned.

Also, while we are at it, let's simplify the unit's owner_name_changed()
callback(): let's drop the "old_owner" argument. We never used that
besides logging, and it's hard to synthesize from just the return of a
GetOwnerName(), hence don't bother.
2020-01-06 15:21:47 +01:00
Lennart Poettering
a5b0784795 core: create/remove unit bus name slots always together
When a service unit watches a bus name (i.e. because of BusName= being
set), then we do two things: we install a match slot to watch how its
ownership changes, and we inquire about the current owner. Make sure we
always do both together or neither.

This in particular fixes a corner-case memleak when destroying bus
connections, since we never freed the GetNameOwner() bus slots when
destroying a bus when they were still ongoing.
2020-01-06 15:21:44 +01:00
Lennart Poettering
5085ef0d71 core: no need to eat up error
This is a method call reply. We might as well propagate the error. The
worst that happens is that sd-bus logs about it.
2020-01-06 15:21:40 +01:00
Lennart Poettering
17bda1f19d core: shorten code a bit
The return parameter here cannot be NULL, the bus call either succeeds
or fails but will never uceed and return an empty owner.
2020-01-06 15:21:37 +01:00
Lennart Poettering
a54654ba70 core: don't check potentially NULL error, it's not gonna work anyway 2020-01-06 15:21:33 +01:00
Lennart Poettering
42837b8134 core: don't check error parameter of get_name_owner_handler()
It's a *return* parameter, not an input parameter. Yes, this is a bit
confusing for method call replies, but we try to use the same message
handler for all incoming messages, hence the parameter. We are supposed
to write any error into it we encounter, if we want, and our caller will
log it, but that's it.
2020-01-06 15:21:30 +01:00
Lennart Poettering
3425c45e1e testsuite: drop "systemctl is-system-running --wait" invocation
We wait for "basic.target" being reached in the user instance anyway
before allowing the user's session to start, hence doing such a wait is
unnecessary, since that would just mean we'd wait for "default.target"
on top of "basic.target", but we shouldn#t need anything of that...

Hence, let's simplify this, reduce explicit sync points.
2020-01-06 15:21:27 +01:00
Lennart Poettering
13811aa5f6 test: don't rely on "nobody" user for TEST-43
The name is not as universal as we want, still, hence let's use our own
user we create with sysusers.d/. That should yield same behaviour
everywhere (and also test sysusers a bit as side effect).
2020-01-06 15:21:23 +01:00
Lennart Poettering
519b2e5212 test: hardcode shell to use
let's make sure we always invoke our commands through /bin/sh, since
on some distros su will use /bin/nologin (or whatever is listed in
/etc/passwd) as shell otherwise and we don#t want that.
2020-01-06 15:21:19 +01:00
Yu Watanabe
14b6e6b6f3 sd-netlink: use uint8_t* for non-character data 2020-01-06 14:50:41 +01:00
Lennart Poettering
f9aefc91f1 testsuite: drop "systemctl is-system-running --wait" invocation
We wait for "basic.target" being reached in the user instance anyway
before allowing the user's session to start, hence doing such a wait is
unnecessary, since that would just mean we'd wait for "default.target"
on top of "basic.target", but we shouldn#t need anything of that...

Hence, let's simplify this, reduce explicit sync points.
2020-01-06 13:41:56 +01:00
Lennart Poettering
e9786a5c01 test: don't rely on "nobody" user for TEST-43
The name is not as universal as we want, still, hence let's use our own
user we create with sysusers.d/. That should yield same behaviour
everywhere (and also test sysusers a bit as side effect).
2020-01-06 13:25:33 +01:00
Lennart Poettering
6e0ed2865e test: hardcode shell to use
let's make sure we always invoke our commands through /bin/sh, since
on some distros su will use /bin/nologin (or whatever is listed in
/etc/passwd) as shell otherwise and we don#t want that.
2020-01-06 13:25:33 +01:00
Zach Smith
52133271a7 systemd-sleep: always attempt hibernation if configured
When calculation of swap file offset is unsupported, rely on the
/sys/power/resume & /sys/power/resume_offset values if configured
rather than requiring a matching swap entry to be identified.

Refactor to use dev_t for comparison of resume= device instead of string.
2020-01-05 20:15:38 -08:00
Topi Miettinen
ec04aef442 dbus-execute: avoid extra strdup()
bind_mount_add does the strdup(), so we can avoid
strdup()ing the strings.
2020-01-04 10:47:28 +01:00
Lennart Poettering
ff963ea6ba test: use symlinks for Makefiles
for some reason the newer tests used file copyies instead of symlinks.
let's fix that.
2020-01-03 21:36:58 +01:00
Kevin Kuehler
097537f07a job: Don't mark as redundant if deps are relevant
In the steps given in #13850, the resulting graph looks like:

    C (Anchor) -> B -> A

Since B is inactive, it will be flagged as redundant and removed from
the transaction, causing A to get garbage collected. The proposed fix is
to not mark nodes as redundant if doing so causes a relevant node to be
garbage collected.

Fixes #13850
2020-01-03 15:58:10 +01:00
Lennart Poettering
dc5737470e
Merge pull request #14194 from yuwata/network-multipath-routing-12541
network: introduce multipath routing
2020-01-03 15:38:03 +01:00
Lennart Poettering
a9586f0ca8
Merge pull request #14469 from aburch/man-tmpfiles.d-minor-improvements
man: tmpfiles.d: minor improvements
2020-01-03 14:18:16 +01:00
Daan De Meyer
2436ea761b nspawn: Make a custom mount on root imply --read-only. 2020-01-03 14:06:38 +01:00
Daan De Meyer
bbd407ea2b nspawn: Don't mount read-only if we have a custom mount on root. 2020-01-03 14:06:38 +01:00
Lennart Poettering
12da859a3f
Merge pull request #14401 from DaanDeMeyer/nspawn-move-veth-back-to-host
nspawn: move virtual interfaces added with --network-interface back to the host
2020-01-03 12:47:03 +01:00