]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
2 years agoudev: replace strtoul by safe_ato*
David Tardon [Tue, 22 Jun 2021 14:41:23 +0000 (16:41 +0200)] 
udev: replace strtoul by safe_ato*

2 years agoMerge pull request #19977 from yuwata/nspawn-fix-strextend
Zbigniew Jędrzejewski-Szmek [Mon, 21 Jun 2021 17:24:39 +0000 (19:24 +0200)] 
Merge pull request #19977 from yuwata/nspawn-fix-strextend

nspawn: replace strextend_with_separator() -> strextendf_with_separator()

2 years agocryptenroll: fix minor typo in --help (#19985)
Lennart Poettering [Mon, 21 Jun 2021 15:56:52 +0000 (17:56 +0200)] 
cryptenroll: fix minor typo in --help (#19985)

We use "+" as separator for PCR indexes now, but we forgot to replace
one "," by "+"

2 years agomount-util: use EXTRACT_KEEP_QUOTE to handle mount options 19977/head
Yu Watanabe [Mon, 21 Jun 2021 12:12:49 +0000 (21:12 +0900)] 
mount-util: use EXTRACT_KEEP_QUOTE to handle mount options

Otherwise, the quotes which wrap SELinux options are dropped.

2 years agomount-util: reduce scope of variable
Yu Watanabe [Mon, 21 Jun 2021 11:19:26 +0000 (20:19 +0900)] 
mount-util: reduce scope of variable

2 years agotest: add test cases for EXTRACT_KEEP_QUOTE and EXTRACT_UNQUOTE
Yu Watanabe [Mon, 21 Jun 2021 12:11:23 +0000 (21:11 +0900)] 
test: add test cases for EXTRACT_KEEP_QUOTE and EXTRACT_UNQUOTE

2 years agoextract-word: introduce EXTRACT_KEEP_QUOTE flag
Yu Watanabe [Mon, 21 Jun 2021 12:01:54 +0000 (21:01 +0900)] 
extract-word: introduce EXTRACT_KEEP_QUOTE flag

2 years agomount-util: make mount_flags_to_string() show flag name instead of number
Yu Watanabe [Mon, 21 Jun 2021 05:52:55 +0000 (14:52 +0900)] 
mount-util: make mount_flags_to_string() show flag name instead of number

This also adds missing MS_NOSYMFOLLOW flag. Moreover, this makes the
function always add unhandled flags in number.

2 years agonspawn: replace strextend_with_separator() -> strextendf_with_separator()
Yu Watanabe [Sun, 20 Jun 2021 10:40:55 +0000 (19:40 +0900)] 
nspawn: replace strextend_with_separator() -> strextendf_with_separator()

Fixes a bug introduced by cfea7618f28562c053a1ee194108feaa502081ff.

Before this commit:
mode=1777,size=10%,nr_inodes=400k,uid=496107520,gid=496107520,context=,sys.id:sys.role:systemd.nspawn.container.fs:s0,
After this commit:
mode=1777,size=10%,nr_inodes=400k,uid=496107520,gid=496107520,context=sys.id:sys.role:systemd.nspawn.container.fs:s0

Fixes #19976.

2 years agotime-util: coding style fixes
Yu Watanabe [Mon, 21 Jun 2021 08:54:05 +0000 (17:54 +0900)] 
time-util: coding style fixes

Follow-ups for 45eb4d2261ed0d943fd503a6d79ee3b7b7558c09.

2 years agovirt: improve log message when we cannot read /sys/firmware/dmi/entries/0-0/raw
Yu Watanabe [Sun, 20 Jun 2021 15:09:07 +0000 (00:09 +0900)] 
virt: improve log message when we cannot read /sys/firmware/dmi/entries/0-0/raw

As the file is usually readable by only root.

Prompted by https://github.com/systemd/systemd/issues/19978#issuecomment-864561357.

2 years agoMerge pull request #19981 from gablank/relative-time-unit-singular
Yu Watanabe [Mon, 21 Jun 2021 05:04:31 +0000 (14:04 +0900)] 
Merge pull request #19981 from gablank/relative-time-unit-singular

time-util: don't use plural units indiscriminately

2 years agotime-util: don't use plural units indiscriminately 19981/head
Anders Wenhaug [Sun, 20 Jun 2021 19:43:07 +0000 (21:43 +0200)] 
time-util: don't use plural units indiscriminately

format_timestamp_relative currently returns the plural form of
years and months no matter the quantity, and in many cases (for
durations > 1 week) this is the same with days.

This patch changes this so that the function takes the quantity into account,
returning "1 month 1 week ago" instead of "1 months 1 weeks ago".

2 years agohwdb: add rules for Lenovo U41-70 (80JV)
Jesse Stricker [Fri, 18 Jun 2021 14:21:14 +0000 (16:21 +0200)] 
hwdb: add rules for Lenovo U41-70 (80JV)

2 years agoRevert "ci: work around #19442 to make CI happy again"
Frantisek Sumsal [Thu, 17 Jun 2021 17:45:23 +0000 (19:45 +0200)] 
Revert "ci: work around #19442 to make CI happy again"

The fix/workaround from #18851 should, hopefully, make this redundant.

This reverts commit 48a3cf58d5ad9cf2a4a4e6167171070b88c25369.

2 years agorepart: make No-Auto GPT partition flag configurable too
Lennart Poettering [Thu, 17 Jun 2021 10:57:26 +0000 (12:57 +0200)] 
repart: make No-Auto GPT partition flag configurable too

This is useful for provisioning initially empty secondary A/B root file
systems. We don't want those to ever be considered for automatic
mounting, for example in "systemd-nspawn --image=", hence we should
create them with the No-Auto flag turned on. Once a file system image is
dropped into the partition the flag may be turned off by the updater
tool, so that it is considered from then on.

Thew new option for this is called NoAuto. I dislike negated options
like this, but this is taken from the naming in the spec, which in turn
inherited the name from the same flag for Microsoft Data Partitions. To
minimize confusion, let's stick to the name hence.

2 years agopath-util: make path_equal() an inline wrapper around path_compare()
Lennart Poettering [Thu, 17 Jun 2021 09:04:31 +0000 (11:04 +0200)] 
path-util: make path_equal() an inline wrapper around path_compare()

The two are completely identical, only the return code is inverted.
let's hence make it easy for the compiler to make it the same function
call even in lowest optimization modes.

2 years agotest: wait until the unit leaves the 'inactive' state as well
Frantisek Sumsal [Thu, 17 Jun 2021 18:17:25 +0000 (20:17 +0200)] 
test: wait until the unit leaves the 'inactive' state as well

In many CI runs I noticed a race where we check the "active" state a bit
too early where the unit is still in the "inactive" state, causing the
`is-failed` check to fail. Mitigate this by waiting even if the unit is
in the inactive state and introduce a "safe net" which checks whether
the unit is not restarting indefinitely or more than it should (as
described in the original issue #3166).

Example:
```
[    5.757784] testsuite-11.sh[216]: + systemctl --no-block start fail-on-restart.service
[    5.853657] testsuite-11.sh[222]: ++ systemctl show --value --property ActiveState fail-on-restart.service
[    5.946044] testsuite-11.sh[216]: + active_state=inactive
[    5.946044] testsuite-11.sh[216]: + [[ inactive == \a\c\t\i\v\a\t\i\n\g ]]
[    5.946044] testsuite-11.sh[216]: + [[ inactive == \a\c\t\i\v\e ]]
[    5.946044] testsuite-11.sh[216]: + systemctl is-failed fail-on-restart.service
[    5.946816] systemd[1]: fail-on-restart.service: Passing 0 fds to service
[    5.946913] systemd[1]: fail-on-restart.service: About to execute false
[    5.947011] systemd[1]: fail-on-restart.service: Forked false as 228
[    5.947093] systemd[1]: fail-on-restart.service: Changed dead -> start
[    5.947172] systemd[1]: Starting Fail on restart...
[    5.947272] systemd[228]: fail-on-restart.service: Executing: false
[    5.960553] testsuite-11.sh[227]: activating
[    5.965188] testsuite-11.sh[216]: + exit 1
[    6.011838] systemd[1]: Received SIGCHLD from PID 228 (4).
[    6.012510] systemd[1]: fail-on-restart.service: Main process exited, code=exited, status=1/FAILURE
[    6.012638] systemd[1]: fail-on-restart.service: Failed with result 'exit-code'.
[    6.012834] systemd[1]: fail-on-restart.service: Service will restart (restart setting)
[    6.012963] systemd[1]: fail-on-restart.service: Changed running -> failed
[    6.013081] systemd[1]: fail-on-restart.service: Unit entered failed state.
```

2 years agoUpdate systemd-resolved.service.8 help
plattrap [Fri, 18 Jun 2021 00:32:02 +0000 (12:32 +1200)] 
Update systemd-resolved.service.8 help

Text currently refers to `/etc/nsswitch.conf` where it should refer to `/etc/resolv.conf`.
This is in the context of defining a nameserver IP and search domains.

2 years agotest: drop the mawk-incompatible expression
Frantisek Sumsal [Thu, 17 Jun 2021 12:38:21 +0000 (14:38 +0200)] 
test: drop the mawk-incompatible expression

The three-argument match() is a GNU AWK extension, thus breaking the
compatibility with mawk (used on Ubuntu/Debian, for example). Let's
replace it with a (hopefully) more portable sed expression to drop the
inadvertently introduced gawk dependency.

Fixes: #19957
2 years agohwdb: Add mic mute key mapping for HP Elite Dragonfly
Jeremy Szu [Thu, 17 Jun 2021 11:00:38 +0000 (19:00 +0800)] 
hwdb: Add mic mute key mapping for HP Elite Dragonfly

 * HP confirmed there are two marketing name
   * HP Elite Dragonfly G2 Notebook PC
   * HP Elite Dragonfly Max Notebook PC

2 years agoupdate TODO
Lennart Poettering [Thu, 17 Jun 2021 13:11:37 +0000 (15:11 +0200)] 
update TODO

2 years agoshell-completion: revert c1072f6473bafa063cbf700c86524083d2857031
Eric Cook [Wed, 16 Jun 2021 19:35:12 +0000 (15:35 -0400)] 
shell-completion: revert c1072f6473bafa063cbf700c86524083d2857031
fixing https://github.com/systemd/systemd/issues/19689

2 years agocore: Hide "Deactivated successfully" message
Jan Macku [Thu, 27 May 2021 10:25:51 +0000 (12:25 +0200)] 
core: Hide "Deactivated successfully" message

Show message "Deactivated successfully" in debug mode (when manager is
user) rather than in info mode. This message has low information value
for regular users and it might be a bit overwhelming on a system with
a lot of devices.

2 years agotest: do not run 'meson configure' if NO_BUILD is set
Luca Boccassi [Wed, 16 Jun 2021 20:50:23 +0000 (21:50 +0100)] 
test: do not run 'meson configure' if NO_BUILD is set

There is no build tree and packages are used, so it cannot work. Unlikely
that static linking has been set for those builds anyway.

Fixes https://github.com/systemd/systemd/issues/19955

2 years agoNEWS: fix typos
Joerg Behrmann [Thu, 17 Jun 2021 07:32:32 +0000 (09:32 +0200)] 
NEWS: fix typos

2 years agomeson: allow "soft-static" allocations for uids and gids in the initrd
Zbigniew Jędrzejewski-Szmek [Sun, 23 May 2021 20:00:22 +0000 (22:00 +0200)] 
meson: allow "soft-static" allocations for uids and gids in the initrd

The general idea with users and groups created through sysusers is that an
appropriate number is picked when the allocation is made. The number that is
selected will be different on each system based on the order of creation of
users, installed packages, etc. Since system users and groups are not shared
between installations, this generally is not an issue. But it becomes a problem
for initrd: some file systems are shared between the initrd and the host (/run
and /dev are probably the only ones that matter). If the allocations are
different in the host and the initrd, and files survive switch-root, they will
have wrong ownership.

This makes the gids build-time-configurable for all groups and users where
state may survive the switch from initrd to the host.

In particular, all "hardware access" groups are like this: files in /dev will
be owned by them.  Eventually the new udev would change ownership, but there
would be a momemnt where the files were owned by the wrong group. The
allocations are "soft-static" in the language of Fedora packaging guidelines:
the uid/gid will be used if possible, but we'll fall back to a different
one. TTY_GID is the exception, because the number is used directly.

Similarly, the possibility to configure "soft-static" uids is added for daemons
which may usefully run in the initramfs: systemd-network (lease information and
interface state is serialized to /run), systemd-resolve (stub files and
interface state), systemd-timesync (/run/systemd/timesync).

Journal files are owned by the group systemd-journal, and acls are granted
for wheel and adm.

systemd-oom and systemd-coredump are excluded from this patch: I assume that
oomd is not useful in the initrd, and coredump leaves no state (it only creates
a pipe in /run?).

The defaults are not changed: if nothing is configured, dynamic allocation will
be used. I looked at a Debian system, and the numbers are all different than
on Fedora.

For Fedora, see the list of uids and gids at https://pagure.io/setup/blob/master/f/uidgid.
In particular, systemd-network and systemd-resolve got soft-static numbers to
make it easy to transition from a non-host-specific initrd to a host system
already a few years back (https://bugzilla.redhat.com/show_bug.cgi?id=1102002).

I also requested static allocations for sgx, input, render in
https://pagure.io/packaging-committee/issue/1078,
https://pagure.io/setup/pull-request/27.

2 years agoMerge pull request #19948 from keszybz/set-driver-refactoring
Luca Boccassi [Wed, 16 Jun 2021 12:48:18 +0000 (13:48 +0100)] 
Merge pull request #19948 from keszybz/set-driver-refactoring

A minor refactoring to sd-device internals

2 years agoMerge pull request #19947 from yuwata/network-dad-tiny-fixes
Luca Boccassi [Wed, 16 Jun 2021 08:45:42 +0000 (09:45 +0100)] 
Merge pull request #19947 from yuwata/network-dad-tiny-fixes

network: tiny fixes about IPv4ACD

2 years agosd-device: let device_set_driver() accept NULL too 19948/head
Zbigniew Jędrzejewski-Szmek [Thu, 3 Jun 2021 16:47:05 +0000 (18:47 +0200)] 
sd-device: let device_set_driver() accept NULL too

Like previous commit, but for driver not subsystem.

2 years agosd-device: let device_set_subsystem() accept NULL
Zbigniew Jędrzejewski-Szmek [Thu, 3 Jun 2021 16:37:26 +0000 (18:37 +0200)] 
sd-device: let device_set_subsystem() accept NULL

This makes device_shallow_clone() simpler.

Follow-up for 2255e8adee37c490bf8cf2daab791b6f746bb0a0.

2 years agonetwork: always enable IPv4 ACD for statically configured IPv4LL address 19947/head
Yu Watanabe [Tue, 15 Jun 2021 21:54:47 +0000 (06:54 +0900)] 
network: always enable IPv4 ACD for statically configured IPv4LL address

2 years agoman: fix RFC number and its title
Yu Watanabe [Wed, 16 Jun 2021 01:32:28 +0000 (10:32 +0900)] 
man: fix RFC number and its title

2 years agonetwork: IFA_F_NODAD flag is only for IPv6 addresses
Yu Watanabe [Tue, 15 Jun 2021 23:33:04 +0000 (08:33 +0900)] 
network: IFA_F_NODAD flag is only for IPv6 addresses

2 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

2 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

2 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

2 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

2 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

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

2 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.

2 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

2 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

2 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.

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

2 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.

2 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.

2 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

2 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

2 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.

2 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.

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

2 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.

2 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.

2 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.

2 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

2 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.

2 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

2 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

2 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.

2 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.

2 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

2 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

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

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

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

2 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

2 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()

2 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

2 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

2 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.

2 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

2 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
```

2 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

2 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.

2 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().

2 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

2 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.

2 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

2 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.

2 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.

2 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.

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

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

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

2 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.

2 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

2 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…

2 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()

2 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)
```

2 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.

2 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.

2 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

2 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.

2 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.

2 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.

2 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

2 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.

2 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

2 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.