]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
4 years agoMerge pull request #19942 from wat-ze-hex/socket-bind-ip-proto-2021-06-10 v249-rc1
Lennart Poettering [Tue, 15 Jun 2021 22:24:54 +0000 (00:24 +0200)] 
Merge pull request #19942 from wat-ze-hex/socket-bind-ip-proto-2021-06-10

dbus: extend SocktBind{Allow|Deny}= with ip proto

4 years agotest: add a testcase for issue #19895
Frantisek Sumsal [Tue, 15 Jun 2021 06:34:41 +0000 (15:34 +0900)] 
test: add a testcase for issue #19895

4 years agoMerge pull request #19896 from keszybz/systemd-efi-options-hint
Lennart Poettering [Tue, 15 Jun 2021 22:03:08 +0000 (00:03 +0200)] 
Merge pull request #19896 from keszybz/systemd-efi-options-hint

Print hint in bootctl when systemd-efi-options output is out-of-date

4 years agoMerge pull request #19943 from poettering/v249rc1-rep
Lennart Poettering [Tue, 15 Jun 2021 22:02:31 +0000 (00:02 +0200)] 
Merge pull request #19943 from poettering/v249rc1-rep

prepare v249-rc1

4 years agoMerge pull request #19945 from yuwata/news
Zbigniew Jędrzejewski-Szmek [Tue, 15 Jun 2021 21:04:39 +0000 (23:04 +0200)] 
Merge pull request #19945 from yuwata/news

update NEWS

4 years agoNEWS: fix typo 19945/head
Yu Watanabe [Tue, 15 Jun 2021 21:01:25 +0000 (06:01 +0900)] 
NEWS: fix typo

4 years agoNEWS: drop journal file truncation feature
Yu Watanabe [Tue, 15 Jun 2021 20:53:45 +0000 (05:53 +0900)] 
NEWS: drop journal file truncation feature

Follow-up for 0aa649b11d8176c823756c419cb75786787a2a62.

4 years agodbus: update SocketBind{Allow|Deny}= doc 19942/head
Julia Kartseva [Tue, 15 Jun 2021 20:51:33 +0000 (13:51 -0700)] 
dbus: update SocketBind{Allow|Deny}= doc

4 years agodbus: extend SocktBind{Allow|Deny}= with ip proto
Julia Kartseva [Tue, 15 Jun 2021 18:58:54 +0000 (11:58 -0700)] 
dbus: extend SocktBind{Allow|Deny}= with ip proto

Support filtering by ip protocol (L4) in SocketBind{Allow|Deny}=
properties.
The signature of dbus methods must be finalized before new release is
cut, hence reserve a parameter for ip protocol.
Implementation will follow.

Closes https://github.com/systemd/systemd/issues/19891

4 years agobootctl: print SystemdOptions from efivarfs if newer than our cache 19896/head
Zbigniew Jędrzejewski-Szmek [Fri, 11 Jun 2021 15:11:34 +0000 (17:11 +0200)] 
bootctl: print SystemdOptions from efivarfs if newer than our cache

The logic is that if the options are updated after boot, we *don't* use
the new value. But we still want to print out the changed contents in
bootctl as to not confuse people.

Fixes #19597.
Also https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=988450.

$ build/bootctl systemd-efi-options
quiet
Note: SystemdOptions EFI variable has been modified since boot. New value: debug

The hint is printed to stderr, so scripts should not be confused.

4 years agoInline some inerator variables
Zbigniew Jędrzejewski-Szmek [Fri, 11 Jun 2021 10:23:46 +0000 (12:23 +0200)] 
Inline some inerator variables

4 years agobasic/efivars: replace dynanamic creation of efivar names with static strings
Zbigniew Jędrzejewski-Szmek [Fri, 11 Jun 2021 10:23:24 +0000 (12:23 +0200)] 
basic/efivars: replace dynanamic creation of efivar names with static strings

Creating those string dynamically at runtime is slow and unnecessary.
Let's use static strings with a bit of macro magic and the let the compiler
coalesce as much as possible.

$ size build/src/shared/libsystemd-shared-248.so{.old,}
   text    data     bss     dec     hex filename
2813453   94572    4584 2912609  2c7161 build/src/shared/libsystemd-shared-248.so.old
2812309   94564    4584 2911457  2c6ce1 build/src/shared/libsystemd-shared-248.so

A nice side-effect is that the same form is used everywhere, so it's easier to
figure out all variables that are used, and where each specific variable is
used.

C.f. 2b0445262ad9be2a9bf49956ab8e886ea2e48a0a.

Note: 'const char *foo = alloca(…);' seems OK. Our coding style document and
alloca(3) only warn against using alloca() in function invocations. Declaring
both stack variable and alloca at the same time should be fine: no matter in
which order they happen, i.e. if the pointer variable is above the contents,
or the contents are above the pointer, or even if the pointer is elided by the
compiler, everything should be fine.

4 years agosd-id128: add SD_ID128_MAKE_UUID_STR
Zbigniew Jędrzejewski-Szmek [Fri, 11 Jun 2021 16:17:00 +0000 (18:17 +0200)] 
sd-id128: add SD_ID128_MAKE_UUID_STR

It's like SD_ID128_MAKE_STR, but with hyphens.

4 years agomeson: bump version for 249-rc1 release 19943/head
Lennart Poettering [Tue, 15 Jun 2021 19:54:11 +0000 (21:54 +0200)] 
meson: bump version for 249-rc1 release

4 years agohwbd: run "ninja -C build update-hwdb" again
Lennart Poettering [Tue, 15 Jun 2021 19:58:34 +0000 (21:58 +0200)] 
hwbd: run "ninja -C build update-hwdb" again

4 years agoseccomp: drop quotactl_path() again from filter sets
Lennart Poettering [Tue, 15 Jun 2021 07:17:12 +0000 (09:17 +0200)] 
seccomp: drop quotactl_path() again from filter sets

In the light of https://lwn.net/Articles/859679/ let's drop
quotactl_path() again from the filter set list, as it got backed out
again in 5.13-rc3.

It's likely going to be replaced by quotactl_fd() eventually, but that
hasn't made its way into the tree yet, hence let's not replace the entry
for now.

This partially reverts 34254e599a28529bdb89f91571adeaf7c76d9f43.

4 years agotest: fix syscall existence check
Yu Watanabe [Tue, 15 Jun 2021 10:19:46 +0000 (19:19 +0900)] 
test: fix syscall existence check

Follow-up for 0643eb47a0418dc90d33853089dc9bc6ad63b0ca.

This also drops errnously introduced hashmap_put() in the commit.

4 years agoupdate TODO
Lennart Poettering [Tue, 15 Jun 2021 16:20:46 +0000 (18:20 +0200)] 
update TODO

4 years agosd-id128: document everywhere that we treat all UUIDs as Variant 1
Lennart Poettering [Tue, 15 Jun 2021 15:55:17 +0000 (17:55 +0200)] 
sd-id128: document everywhere that we treat all UUIDs as Variant 1

So in theory UUID Variant 2 (i.e. microsoft GUIDs) are supposed to be
displayed in native endian. That is of course a bad idea, and Linux
userspace generally didn't implement that, i.e. uuidd and similar.
Hence, let's not bother either, but let's document that we treat
everything the same as Variant 1, even if it declares something else.

4 years agonetwork: use void* to correctly store SetLinkOperation in Request
Yu Watanabe [Mon, 14 Jun 2021 10:46:33 +0000 (19:46 +0900)] 
network: use void* to correctly store SetLinkOperation in Request

Previously, when `link_request_queue()` is called in link_request_set_link(),
`SetLinkOperation` is casted with INT_TO_PTR(), and the value is assigned to
`void *object`. However the value was read directly through the member
`SetLinkOperation set_link_operation` of the union which `object`
beloging to. Thus, read value was always 0 on big-endian systems.

Fixes configuring link issue on s390x systems.

4 years agoudev: add basic set of user-space defined tracepoints (USDT)
Michal Sekletár [Mon, 24 Aug 2020 09:21:44 +0000 (11:21 +0200)] 
udev: add basic set of user-space defined tracepoints (USDT)

Debugging udev issues especially during the early boot is fairly
difficult. Currently, you need to enable (at least) debug logging and
start monitoring uevents, try to reproduce the issue and then analyze
and correlate two (usually) huge log files. This is not ideal.

This patch aims to provide much more focused debugging tool,
tracepoints. More often then not we tend to have at least the basic idea
about the issue we are trying to debug further, e.g. we know it is
storage related. Hence all of the debug data generated for network
devices is useless, adds clutter to the log files and generally
slows things down.

Using this set of tracepoints you can start asking very specific
questions related to event processing for given device or subsystem.
Tracepoints can be used with various tracing tools but I will provide
examples using bpftrace.

Another important aspect to consider is that using tracepoints you can
debug production systems. There is no need to install test packages with
added logging, no debuginfo packages, etc...

Example usage (you might be asking such questions during the debug session),

Q: How can I list all tracepoints?
A: bpftrace -l 'usdt:/usr/lib/systemd/systemd-udevd:udev:*'

Q: What are the arguments for each tracepoint?
A: Look at the code and search for use of DEVICE_TRACE_POINT macro.

Q: How many times we have executed external binary?
A: bpftrace -e 'usdt:/usr/lib/systemd/systemd-udevd:udev:spawn_exec { @cnt = count(); }'

Q: What binaries where executed while handling events for "dm-0" device?
A  bpftrace -e 'usdt:/usr/lib/systemd/systemd-udevd:udev:spawn_exec / str(arg1) == "dm-0"/ { @cmds[str(arg4)] = count(); }'

Thanks to Thomas Weißschuh <thomas@t-8ch.de> for reviewing this patch
and contributions that allowed us to drop the dependency on dtrace tool
and made the resulting code much more concise.

4 years agoMerge pull request #19928 from yuwata/riscv32
Yu Watanabe [Tue, 15 Jun 2021 15:53:30 +0000 (00:53 +0900)] 
Merge pull request #19928 from yuwata/riscv32

riscv32 support

4 years agoRevert "journal-file: truncate archived journals"
Yu Watanabe [Tue, 15 Jun 2021 06:29:55 +0000 (15:29 +0900)] 
Revert "journal-file: truncate archived journals"

This reverts commit 592d419ce6e283c443901be4a69c95984821ff06.

The commit makes journald unstable, and is just an optimization
for the size of journal. Hence, it is safe to revert the commit.

Fixes #19895.

4 years agoMerge pull request #19921 from yuwata/service-verify-bus-type
Luca Boccassi [Tue, 15 Jun 2021 11:21:53 +0000 (12:21 +0100)] 
Merge pull request #19921 from yuwata/service-verify-bus-type

core/service: fix assertion when Type=dbus but BusName= is not specified

4 years agounit: use alias name of man page
Yu Watanabe [Mon, 14 Jun 2021 18:54:39 +0000 (03:54 +0900)] 
unit: use alias name of man page

4 years agoman: fix sd_bus_add_node_enumerator() ret_nodes
Matt Johnston [Tue, 15 Jun 2021 03:49:26 +0000 (11:49 +0800)] 
man: fix sd_bus_add_node_enumerator() ret_nodes

ret_nodes is NULL terminated, the return value isn't a count.

4 years agoman: add an example to configure default route on device with table
Yu Watanabe [Tue, 15 Jun 2021 07:05:08 +0000 (16:05 +0900)] 
man: add an example to configure default route on device with table

Prompted by #19911.

4 years agoMerge pull request #19930 from yuwata/update-comments
Luca Boccassi [Tue, 15 Jun 2021 10:28:51 +0000 (11:28 +0100)] 
Merge pull request #19930 from yuwata/update-comments

Update comments

4 years agomissing_syscall: add riscv32 support 19928/head
Yu Watanabe [Tue, 15 Jun 2021 03:41:45 +0000 (12:41 +0900)] 
missing_syscall: add riscv32 support

4 years agosyscalls: add riscv32
Yu Watanabe [Tue, 15 Jun 2021 10:07:32 +0000 (19:07 +0900)] 
syscalls: add riscv32

4 years agosyscalls: update tables
Yu Watanabe [Tue, 15 Jun 2021 10:07:11 +0000 (19:07 +0900)] 
syscalls: update tables

4 years agofix typo 19930/head
Yu Watanabe [Tue, 15 Jun 2021 05:19:30 +0000 (14:19 +0900)] 
fix typo

4 years agotree-wide: add missing whitespace at the end of comments
Yu Watanabe [Tue, 15 Jun 2021 05:09:29 +0000 (14:09 +0900)] 
tree-wide: add missing whitespace at the end of comments

4 years agoMerge pull request #19924 from yuwata/sd-event-fix-assertion
Yu Watanabe [Tue, 15 Jun 2021 04:34:03 +0000 (13:34 +0900)] 
Merge pull request #19924 from yuwata/sd-event-fix-assertion

sd-event: fix assrtion in sleep_between()

4 years agotest-seccomp: Check for __NR_ppoll before use (#19858)
Khem Raj [Tue, 15 Jun 2021 04:12:30 +0000 (21:12 -0700)] 
test-seccomp: Check for __NR_ppoll before use (#19858)

some newer architectures like riscv32 do not have __NR_ppoll from get go

4 years agoMerge pull request #19913 from yuwata/network-fix-counter
Yu Watanabe [Tue, 15 Jun 2021 01:51:24 +0000 (10:51 +0900)] 
Merge pull request #19913 from yuwata/network-fix-counter

network: add missing increment of Link::set_flags_messages

4 years agorepart: show partitions we don't grow/create as "unchanged"
Lennart Poettering [Mon, 14 Jun 2021 15:01:48 +0000 (17:01 +0200)] 
repart: show partitions we don't grow/create as "unchanged"

The previous string was "unknown", but that's wrong, because we *do*
know what we are going to do with those partitions: we leave them
unmodified, hence say "unchanged" in the output, to be clearer.

4 years agorepart: align all sizes in table to the right
Lennart Poettering [Mon, 14 Jun 2021 15:01:27 +0000 (17:01 +0200)] 
repart: align all sizes in table to the right

4 years agotest: correctly configure the NUMA node memory pool
Frantisek Sumsal [Mon, 14 Jun 2021 13:45:03 +0000 (15:45 +0200)] 
test: correctly configure the NUMA node memory pool

The currently hardcoded value works with the default configuration, but
breaks when QEMU_MEM != 512M (in sanitizer runs, for example).

```
# QEMU_MEM=1G make -C test/TEST-36-NUMAPOLICY/ run
make: Entering directory '/home/fsumsal/repos/@systemd/systemd/test/TEST-36-NUMAPOLICY'
TEST-36-NUMAPOLICY RUN: test NUMAPolicy= and NUMAMask= options
+ /bin/qemu-kvm -smp 8 -net none -m 1G -nographic -kernel /boot/vmlinuz-5.12.5-300.fc34.x86_64 -drive format=raw'
qemu-kvm: total memory for NUMA nodes (0x20000000) should equal RAM size (0x40000000)
E: QEMU failed with exit code 1
```

4 years agoMerge pull request #19905 from yuwata/network-set-mac-try-again
Yu Watanabe [Mon, 14 Jun 2021 20:35:45 +0000 (05:35 +0900)] 
Merge pull request #19905 from yuwata/network-set-mac-try-again

network: try to bring down interface before setting MAC address

4 years agonetwork: update wlan information when IFF_LOWER_UP flag is gained 19913/head
Yu Watanabe [Mon, 14 Jun 2021 20:11:33 +0000 (05:11 +0900)] 
network: update wlan information when IFF_LOWER_UP flag is gained

Fixes the issue mentioned at
https://github.com/systemd/systemd/issues/19832#issuecomment-860269320.

4 years agonetwork: add brief comment about reconfiguring interfaces
Yu Watanabe [Sat, 12 Jun 2021 02:46:01 +0000 (11:46 +0900)] 
network: add brief comment about reconfiguring interfaces

This also renames link_reconfigure_internal() -> link_reconfigure_impl().

4 years agonetwork: do not partially update wlan information on failure
Yu Watanabe [Sun, 13 Jun 2021 21:34:01 +0000 (06:34 +0900)] 
network: do not partially update wlan information on failure

4 years agonetwork: add missing increment of Link::set_flags_messages
Yu Watanabe [Sun, 13 Jun 2021 19:32:21 +0000 (04:32 +0900)] 
network: add missing increment of Link::set_flags_messages

link_up_or_down() will decrement the counter when the subsequent
RTM_GETLINK netlink method is finished. So, we need to increment
the counter here.

Fixes the issue mentioned at
https://github.com/systemd/systemd/issues/19832#issuecomment-860255692.

4 years agotest: add a test case for #19920 19921/head
Yu Watanabe [Mon, 14 Jun 2021 18:05:48 +0000 (03:05 +0900)] 
test: add a test case for #19920

4 years agocore/service: fix assertion when Type=dbus but BusName= is not specified
Yu Watanabe [Mon, 14 Jun 2021 18:04:06 +0000 (03:04 +0900)] 
core/service: fix assertion when Type=dbus but BusName= is not specified

Fixes #19920.

4 years agosd-event: always reshuffle time prioq on changing online/offline state 19924/head
Yu Watanabe [Mon, 14 Jun 2021 17:13:59 +0000 (02:13 +0900)] 
sd-event: always reshuffle time prioq on changing online/offline state

Before 81107b8419c39f726fd2805517a5b9faab204e59, the compare functions
for the latest or earliest prioq did not handle ratelimited flag.
So, it was ok to not reshuffle the time prioq when changing the flag.

But now, those two compare functions also compare the source is
ratelimited or not. So, it is necessary to reshuffle the time prioq
after changing the ratelimited flag.

Hopefully fixes #19903.

4 years agosd-event: make event_source_time_prioq_reshuffle() accept all event source type
Yu Watanabe [Mon, 14 Jun 2021 17:03:02 +0000 (02:03 +0900)] 
sd-event: make event_source_time_prioq_reshuffle() accept all event source type

But it does nothing for an event source which is neither a timer nor
ratelimited.

4 years agosd-event: use usec_add()
Yu Watanabe [Mon, 14 Jun 2021 16:01:48 +0000 (01:01 +0900)] 
sd-event: use usec_add()

4 years agosd-event: use CMP() macro
Yu Watanabe [Mon, 14 Jun 2021 15:51:33 +0000 (00:51 +0900)] 
sd-event: use CMP() macro

4 years agosd-event: drop unnecessary "else"
Yu Watanabe [Mon, 14 Jun 2021 15:44:04 +0000 (00:44 +0900)] 
sd-event: drop unnecessary "else"

4 years agoRevert "Mount all fs nosuid when NoNewPrivileges=yes"
Topi Miettinen [Sat, 12 Jun 2021 06:35:06 +0000 (09:35 +0300)] 
Revert "Mount all fs nosuid when NoNewPrivileges=yes"

This reverts commit d8e3c31bd8e307c8defc759424298175aa0f7001.

A poorly documented fact is that SELinux unfortunately uses nosuid mount flag
to specify that also a fundamental feature of SELinux, domain transitions, must
not be allowed either. While this could be mitigated case by case by changing
the SELinux policy to use `nosuid_transition`, such mitigations would probably
have to be added everywhere if systemd used automatic nosuid mount flags when
`NoNewPrivileges=yes` would be implied. This isn't very desirable from SELinux
policy point of view since also untrusted mounts in service's mount namespaces
could start triggering domain transitions.

Alternatively there could be directives to override this behavior globally or
for each service (for example, new directives `SUIDPaths=`/`NoSUIDPaths=` or
more generic mount flag applicators), but since there's little value of the
commit by itself (setting NNP already disables most setuid functionality), it's
simpler to revert the commit. Such new directives could be used to implement
the original goal.

4 years agoMerge pull request #19898 from yuwata/network-multipath-route-without-interface-name
Luca Boccassi [Mon, 14 Jun 2021 13:27:50 +0000 (14:27 +0100)] 
Merge pull request #19898 from yuwata/network-multipath-route-without-interface-name

network: set link ifindex when multi-path routes specified without interface name

4 years agoMerge pull request #19894 from yuwata/network-fix-configure-without-carrier
Luca Boccassi [Mon, 14 Jun 2021 13:23:09 +0000 (14:23 +0100)] 
Merge pull request #19894 from yuwata/network-fix-configure-without-carrier

network: always check dynamic address assignments before entering con…

4 years agoMerge pull request #19866 from yuwata/sd-device-new-from-ifindex
Luca Boccassi [Mon, 14 Jun 2021 13:21:17 +0000 (14:21 +0100)] 
Merge pull request #19866 from yuwata/sd-device-new-from-ifindex

sd-device: introduce sd_device_new_from_ifindex()

4 years agonetwork: drop misleading debugging logs about MTU
Yu Watanabe [Mon, 14 Jun 2021 06:43:43 +0000 (15:43 +0900)] 
network: drop misleading debugging logs about MTU

This fixes the following spurious logs on enumerating links:
```
wlan0: Saved original MTU 1500 (min: 256, max: 2304)
wlan0: MTU is changed: 0 → 1500 (min: 256, max: 2304)
```

4 years agonetwork: try to bring down before setting MAC address 19905/head
Yu Watanabe [Sat, 12 Jun 2021 20:12:03 +0000 (05:12 +0900)] 
network: try to bring down before setting MAC address

Most real network devices refuse to set MAC address when its operstate
is not down. So, setting MAC address once failed, then let's bring down
the interface and retry to set.

Closes #6696.

4 years agonetwork: check the size of hardware address before setting MAC address
Yu Watanabe [Sat, 12 Jun 2021 20:24:35 +0000 (05:24 +0900)] 
network: check the size of hardware address before setting MAC address

Also, skip to set MAC address when the current address equals to the
requrested one.

4 years agoAdd a network timeout option to journal-upload
Jayanth Ananthapadmanaban [Sat, 5 Jun 2021 13:33:54 +0000 (06:33 -0700)] 
Add a network timeout option to journal-upload

4 years agodoc: Add RISC-V to FAQ
Daniel Schaefer [Sun, 13 Jun 2021 07:41:42 +0000 (15:41 +0800)] 
doc: Add RISC-V to FAQ

Was added to the spec in 499f0f8209f33da0b6e3b0d6f3a13996edcc7555.

4 years agotest/TEST-17-UDEV: use default image
Zbigniew Jędrzejewski-Szmek [Fri, 11 Jun 2021 06:42:04 +0000 (08:42 +0200)] 
test/TEST-17-UDEV: use default image

No need to build a separate 700MB image to save 3080 bytes in the default image.

4 years agonetwork: always check dynamic address assignments before entering configured state 19894/head
Yu Watanabe [Fri, 11 Jun 2021 11:34:17 +0000 (20:34 +0900)] 
network: always check dynamic address assignments before entering configured state

Previously (v248 or earlier), even if no static address is configured,
the link did not enter configured state, as e.g. Link::static_addresses_configured
is false until the link gained its carrier.
But, after the commit 1187fc337577cecd685d331eeab656be186ba3b2, the
situation was changed. Static addresses, routes, and etc are requested even
if the link does not have its carrier, and thus the link enters configured
state when no static address and etc are specified.

This makes the link does not enter configured state before it gains its
carrier when at least one of dynamic address assignment protocols (e.g.
DHCP) except for NDISC is enabled.

Note that, unfortunately, netplan always enables ConfigureWithoutCarrier=
for all virtual devices, e.g. bridge. See,
https://github.com/canonical/netplan/commit/978e20f902f6b92a46dc6e0050e2172e834e4617
So, we need to support e.g. the following strange config:
```
[Netowkr]
ConfigureWithoutCarrier=yes
DHCP=yes
```

Fixes #19855.

4 years agotest-network: disable dynamic addressing protocols when ConfigureWithoutCarrier=...
Yu Watanabe [Fri, 11 Jun 2021 21:47:49 +0000 (06:47 +0900)] 
test-network: disable dynamic addressing protocols when ConfigureWithoutCarrier= is enabled

4 years agotest-network: refuse routable state when no-carrier is expected
Yu Watanabe [Fri, 11 Jun 2021 21:45:49 +0000 (06:45 +0900)] 
test-network: refuse routable state when no-carrier is expected

If we do not set the maximum operstate in wait-online, then routable
state is allowed when no-carrier state is expected.

4 years agotest-network: add a testcase for MultiPathRoute= without interface name 19898/head
Yu Watanabe [Fri, 11 Jun 2021 20:37:57 +0000 (05:37 +0900)] 
test-network: add a testcase for MultiPathRoute= without interface name

4 years agonetwork: route: set link ifindex when multi-path routes specified without interface...
Yu Watanabe [Fri, 11 Jun 2021 20:34:49 +0000 (05:34 +0900)] 
network: route: set link ifindex when multi-path routes specified without interface name

And do not set RTA_OIF attribute when multi-path routes are specified.
See kernel's fib_get_nhs() in net/ipv4/fib_semantics.c.

Fixes #19890.

4 years agosd-dhcp: refuse to set iaid if we cannot find the interface 19866/head
Yu Watanabe [Wed, 9 Jun 2021 14:47:59 +0000 (23:47 +0900)] 
sd-dhcp: refuse to set iaid if we cannot find the interface

4 years agodhcp: do not use ifindex when generating iaid in tests
Yu Watanabe [Wed, 9 Jun 2021 16:09:09 +0000 (01:09 +0900)] 
dhcp: do not use ifindex when generating iaid in tests

4 years agosd-dhcp: do not use detect_container() to guess udev is running or not
Yu Watanabe [Wed, 9 Jun 2021 14:41:00 +0000 (23:41 +0900)] 
sd-dhcp: do not use detect_container() to guess udev is running or not

4 years agonspawn: path_is_read_only_fs() may return negative errno
Yu Watanabe [Wed, 9 Jun 2021 14:48:50 +0000 (23:48 +0900)] 
nspawn: path_is_read_only_fs() may return negative errno

And we usually assume /sys is not read only on error.

4 years agotree-wide: use sd_device_new_from_ifindex/ifname()
Yu Watanabe [Wed, 9 Jun 2021 14:33:50 +0000 (23:33 +0900)] 
tree-wide: use sd_device_new_from_ifindex/ifname()

4 years agosd-device: introduce sd_device_new_from_ifname/ifindex()
Yu Watanabe [Wed, 9 Jun 2021 14:27:20 +0000 (23:27 +0900)] 
sd-device: introduce sd_device_new_from_ifname/ifindex()

4 years agonetlink: make rtnl_resolve_link_alternative_name() optionally return the main interfa...
Yu Watanabe [Thu, 10 Jun 2021 09:17:47 +0000 (18:17 +0900)] 
netlink: make rtnl_resolve_link_alternative_name() optionally return the main interface name

4 years agonetlink: check input name is valid before calling netlink method
Yu Watanabe [Thu, 10 Jun 2021 09:16:28 +0000 (18:16 +0900)] 
netlink: check input name is valid before calling netlink method

4 years agonetlink: move resolve_ifname() or friends to netlink-util.[ch]
Yu Watanabe [Wed, 9 Jun 2021 21:01:44 +0000 (06:01 +0900)] 
netlink: move resolve_ifname() or friends to netlink-util.[ch]

4 years agonetwork: use link_get_by_name()
Yu Watanabe [Wed, 9 Jun 2021 21:00:44 +0000 (06:00 +0900)] 
network: use link_get_by_name()

4 years agodocs: update coding style a bit
Zbigniew Jędrzejewski-Szmek [Fri, 11 Jun 2021 16:23:57 +0000 (18:23 +0200)] 
docs: update coding style a bit

Say that r should be declared at the top of the function.

Don't say that fixed buffers result in truncation, right after saying that they
must only be used if size is known.

Adjust order of examples to be consistent.

4 years agoMerge pull request #19882 from keszybz/test-stat-util-more
Zbigniew Jędrzejewski-Szmek [Fri, 11 Jun 2021 16:44:58 +0000 (18:44 +0200)] 
Merge pull request #19882 from keszybz/test-stat-util-more

Add a test for path_is_read_only_fs()

4 years agoupdate TODO
Lennart Poettering [Fri, 11 Jun 2021 14:13:49 +0000 (16:13 +0200)] 
update TODO

4 years agocore: Avoid spurious realization of unit cgroups
Michal Koutný [Thu, 10 Jun 2021 13:58:43 +0000 (15:58 +0200)] 
core: Avoid spurious realization of unit cgroups

Cgroups may be unnecessarily realized when they are not needed. This
happens, e.g. for mount units parsed from /proc/$PID/mountinfo, check

        touch /run/ns_mount
        unshare -n sh -c "mount --bind /proc/self/ns/net /run/ns_mount"
        # no cgroup exists
        file /sys/fs/cgroup/system.slice/run-ns_mount.mount
        systemctl daemon-reload
        # the vain cgroup exists
        file /sys/fs/cgroup/system.slice/run-ns_mount.mount

. (Such cgroups can account to a large number with many similar mounts.)

The code already accounts for "lazy" realization (see various checks for
Unit.cgroup_realized) but the unit_deserialize() in the reload/reexec
path performs unconditional realization.

Invalidate (and queue) the units for realization only if we know that
they were already realized in the past. This is a safe thing to do even
in the case the reload brings some new cgroup setting (controllers, BPF)
because units that aren't realized will use the updated setting when the
time for their realization comes. (It's not even needed to add a code
comment because the current formulation suggests the changed behavior.)

4 years agoman: clarify that global search domains apply to global servers, not all interfaces
Zbigniew Jędrzejewski-Szmek [Fri, 11 Jun 2021 07:13:25 +0000 (09:13 +0200)] 
man: clarify that global search domains apply to global servers, not all interfaces

Fixes #19257.

4 years agotest-stat-util: don't fail under chroot 19882/head
Zbigniew Jędrzejewski-Szmek [Thu, 10 Jun 2021 11:25:59 +0000 (13:25 +0200)] 
test-stat-util: don't fail under chroot

I wanted to see what is_path_read_only_fs() and is_path_temporary_fs() return
in a chroot, and various tests would fail. For most of our codebase, we can
assume that /proc and such are mounted, and it doesn't make sense to make the
tests work in a chroot. But let's do it here. (In general, it would be useful
for most stuff in src/basic/, since it's linked into libraries which might be
invoked in incorrectly set up environments and should not fail too badly.)

4 years agoMerge pull request #19811 from anitazha/revert_mount_rl
Luca Boccassi [Thu, 10 Jun 2021 22:41:55 +0000 (23:41 +0100)] 
Merge pull request #19811 from anitazha/revert_mount_rl

sd-event: fix failure to exit rate limiting state

4 years agoMerge pull request #19864 from keszybz/serialization-cleanup
Luca Boccassi [Thu, 10 Jun 2021 22:40:23 +0000 (23:40 +0100)] 
Merge pull request #19864 from keszybz/serialization-cleanup

Serialization cleanup

4 years agokbd-model-map: add Latvian keyboard layout mapping
nl6720 [Thu, 10 Jun 2021 06:40:04 +0000 (09:40 +0300)] 
kbd-model-map: add Latvian keyboard layout mapping

4 years agoMerge pull request #18851 from yuwata/dissect-try-to-find-partition-on-timeout
Zbigniew Jędrzejewski-Szmek [Thu, 10 Jun 2021 17:09:18 +0000 (19:09 +0200)] 
Merge pull request #18851 from yuwata/dissect-try-to-find-partition-on-timeout

dissect: try to find partition more frequently

4 years agoMerge pull request #19870 from keszybz/install-foo-again
Zbigniew Jędrzejewski-Szmek [Thu, 10 Jun 2021 16:56:03 +0000 (18:56 +0200)] 
Merge pull request #19870 from keszybz/install-foo-again

Tweak the install logic again

4 years agoMerge pull request #19878 from poettering/large-key-file-cryptsetup
Lennart Poettering [Thu, 10 Jun 2021 15:10:32 +0000 (17:10 +0200)] 
Merge pull request #19878 from poettering/large-key-file-cryptsetup

add back support for large key files to systemd-cryptsetup

4 years agodocs/CODING_STYLE: fix some typos
Štěpán Němec [Thu, 10 Jun 2021 13:27:43 +0000 (15:27 +0200)] 
docs/CODING_STYLE: fix some typos

4 years agocore/serialize: drop bogus deserialization of ipcns sockets 19864/head
Zbigniew Jędrzejewski-Szmek [Tue, 8 Jun 2021 14:58:30 +0000 (16:58 +0200)] 
core/serialize: drop bogus deserialization of ipcns sockets

a70581ffb5c13c91c76ff73ba6f5f3ff59c5a915 added ExecRuntime.ipcns_storage_socket[], and
serialization in exec_runtime_serialize(), and deserialization in exec_runtime_deserialize_one(),
but also deserialization in exec_runtime_deserialize_compat(). exec_runtime_deserialize_compat()
is for deserializating ExecRuntime when it was serialized as part of the unit before
e8a565cb660a7a11f76180fe441ba8e4f9383771. There was never any code which would serialize
ExecRuntime.ipcns_storage_socket[] this way, so the deserialization attempts are pointless.

4 years agocore/serialization: shorten code, treat all oom error the same
Zbigniew Jędrzejewski-Szmek [Tue, 8 Jun 2021 14:46:35 +0000 (16:46 +0200)] 
core/serialization: shorten code, treat all oom error the same

4 years agocore/serialization: drop misleadingly-named unit_can_serialize()
Zbigniew Jędrzejewski-Szmek [Tue, 8 Jun 2021 14:30:44 +0000 (16:30 +0200)] 
core/serialization: drop misleadingly-named unit_can_serialize()

All unit types can be serialized. This function was really checking whether the
unit type has custom serialization/deserialization code. But we don't need a
function for this.

Also, the check that both .serialize() and .deserialize_item() are defined is
better written as an assert. Not we have a function which would skip
serialization/deserializaton for the unit if we forgot to set either of the
fields.

4 years agotest-stat-util: add a very basic test for test_path_is_read_only()
Zbigniew Jędrzejewski-Szmek [Thu, 10 Jun 2021 10:31:09 +0000 (12:31 +0200)] 
test-stat-util: add a very basic test for test_path_is_read_only()

4 years agotest-stat-util: add standard test logging
Zbigniew Jędrzejewski-Szmek [Thu, 10 Jun 2021 10:30:38 +0000 (12:30 +0200)] 
test-stat-util: add standard test logging

4 years agocryptsetup: improve error message when key files to load are too large 19878/head
Lennart Poettering [Thu, 10 Jun 2021 08:21:08 +0000 (10:21 +0200)] 
cryptsetup: improve error message when key files to load are too large

Let's make this easier to grok for users.

Prompted-by: #19193
4 years agofileio: bump limit for read_full_file() and friends to 64M
Lennart Poettering [Thu, 10 Jun 2021 08:19:11 +0000 (10:19 +0200)] 
fileio: bump limit for read_full_file() and friends to 64M

Apparently people use such large key files. Specifically, people used 4M
key files, and we lowered the limit from 4M to 4M-1 back in 248.

This raises the limit to 64M for read_full_file() to avoid these
specific issues and give some non-trivial room beyond the 4M files seen
IRL.

Note that that a 64M allocation in glibc is always immediately done via
mmap(), and is thus a lot slower than shorter allocations. This means
read_virtual_file() becomes ridiculously slow if we'd use the large
limit, since we use it all the time for reading /proc and /sys metadata,
and read_virtual_file() typically allocates the full size with malloc()
in advance.  In fact it becomes so slow, that test-process-util kept
timing out on me all the time, once I blindly raised the limit.

This patch hence introduces two distinct limits for read_full_file() and
read_virtual_file(): the former is much larger than the latter and the
latter remains where it is. This is safe since the former uses an
exponentially growing realloc() loop while the latter uses the
aforementioend ahead-of-time full limit allocation.

Fixes: #19193
4 years agoshared/install: ignore enablement of template units w/o instance when presetting 19870/head
Zbigniew Jędrzejewski-Szmek [Wed, 9 Jun 2021 16:41:17 +0000 (18:41 +0200)] 
shared/install: ignore enablement of template units w/o instance when presetting

When we have a unit which cannot be enabled:
 # foo@.service:
 ...
 [Install]
 WantedBy=foo.target  # there is no instance, so we don't know what to enable

we should throw an error when invoked directly with 'enable', but
not when doing 'preset' or 'preset-all'.

Fixes #19856.

4 years agoshared/install: pass UnitFileFlags down into the call chain
Zbigniew Jędrzejewski-Szmek [Thu, 10 Jun 2021 08:00:16 +0000 (10:00 +0200)] 
shared/install: pass UnitFileFlags down into the call chain

This just propagates the parameter down into leaf functions,
without any functional change.

4 years agoMerge pull request #19857 from yuwata/tmpfile-fix
Lennart Poettering [Thu, 10 Jun 2021 07:30:57 +0000 (09:30 +0200)] 
Merge pull request #19857 from yuwata/tmpfile-fix

tmpfiles: fix an issue found by Coverity

4 years agoMerge pull request #19863 from keszybz/coverity-drop-unitialized-workarounds
Lennart Poettering [Thu, 10 Jun 2021 07:29:59 +0000 (09:29 +0200)] 
Merge pull request #19863 from keszybz/coverity-drop-unitialized-workarounds

Drop some -Wmaybe-unitialized workarounds to help coverity