Commit graph

70711 commits

Author SHA1 Message Date
Luca Boccassi 75283b6e3c
Merge pull request #31053 from intelfx/work/machinectl-zsh
shell-completion: improve and expand zsh machinectl completion
2024-01-23 10:16:51 +00:00
Antonio Alvarez Feijoo 597a3cfd52
man/bootctl: typo in --print-boot-path description 2024-01-23 10:33:26 +01:00
Antonio Alvarez Feijoo 285ae04040
bootctl: return earlier with --print-esp-path
`--print-esp-path` and `--print-boot-path` cannot be combined, so it's not
necessary to acquire the XBOOTLDR partition with `--print-esp-path`.
2024-01-23 10:24:44 +01:00
Ivan Shapovalov 9a887b1421 shell-completion/zsh: complete hidden images when word starts with "."
Show hidden images in the completion results, but only if the current
word starts with ".", such that
- `machinectl clone <Tab>` will only offer non-hidden images, but
- `machinectl clone .<Tab>` will offer both hidden and non-hidden images
2024-01-23 04:01:11 +01:00
Yu Watanabe fc5edc91cb
Merge pull request #31015 from yuwata/local-addresses
local-addresses: several cleanups and fixes, add test cases
2024-01-23 10:25:35 +09:00
Ivan Shapovalov 57d389c3fb shell-completion/zsh: improve and expand machinectl completion 2024-01-23 01:55:05 +01:00
Werner Sembach 7ebbaaa7f4 Fix systemd-backlight ignoring numbered kbd_backlight entries
If there are name collisions in the leds subsystem, the 2nd device node with the
colliding name gets automatically renamed by appending _1, the third by
appending _2 and so on.

This wildcard change makes sure that systemd-backlight also catches these
renamed nodes for kbd_backlight entries.
2024-01-22 22:03:35 +00:00
Luca Boccassi ad12e4be6d
Merge pull request #31044 from keszybz/uhttpd-alloca-print
Use macro wrapper instead of alloca in µhttp-utils
2024-01-22 22:03:08 +00:00
Michal Koutný 8ad614890b cgroup: Rename effective limits internal table
Post-merge fixup of commit 4fb0d2dc14 ("cgroup: Add EffectiveMemoryMax=,
EffectiveMemoryHigh= and EffectiveTasksMax= properties"), no functional
change intended.
2024-01-22 22:02:37 +00:00
Frantisek Sumsal 6c7fc5d5f2 meson: correctly handle "no" value for sshd?confdir options 2024-01-22 22:01:39 +00:00
Sam Leonard 22ce047394 vmspawn: document -q/--quiet 2024-01-22 22:01:01 +00:00
Frantisek Sumsal 00fafa1a17 core: raise the log priority if sd-executor is missing
Log about missing executor at the emergency level, so the message always
makes it to the console - otherwise it won't get anywhere, since we
can't even start systemd-journald in that case.

Before:

Welcome to Arch Linux!

[    5.202479] systemd[1]: Failed to allocate manager object: No such file or directory
[!!!!!!] Failed to allocate manager object.
[    5.207741] systemd[1]: Freezing execution.

After:

Welcome to Arch Linux!

[    5.279408] systemd[1]: Failed to open executor binary '/usr/lib/systemd/systemd-executor': No such file or directory
[    5.290756] systemd[1]: Failed to allocate manager object: No such file or directory
[!!!!!!] Failed to allocate manager object.
[    5.295919] systemd[1]: Freezing execution.
2024-01-22 21:58:41 +00:00
Lennart Poettering 4b1a02d866
Merge pull request #31011 from poettering/getpwnam-tweaks
clean up getpwnam() calls and related interfaces
2024-01-22 20:58:33 +01:00
Matt Muggeridge d4c8de21a0 IPv6 RA: Support the Retrans Timer field (IPv6 Conformance Test: v6LC.2.1.5)
The RA's Retransmission Timer field was being ignored. This resolves the IPv6
Core Conformance test, v6LC.2.1.5 [1].

Retransmission Timer is a 32-bit unsigned integer. The time, in milliseconds,
between retransmitted Neighbor Solicitation messages. Used by the Address
Resolution and Neighbor Unreachability Detection (NUD) algorithm.

Support setting a default value for the neighbour retransmission timer value with:

    [Network]
    IPv6RetransmissionTimeSec=<int>

By default, upon receiving a Router Advertisement with the Retransmission Timer
field set to a non-zero value, it will update the kernel's retransmit timer value.
To disable this behaviour, configure the UseIPv6RetransmissionTime= under the
[IPv6AcceptRA] section.

    [IPv6AcceptRA]
    UseIPv6RetransmissionTime=<bool>

RFC4861: Neighbor Discovery in IPv6
  * Section 4.2 RA Message Format.
  * Section 6.3.4 Processing Received Router Advertisements

A Router Advertisement field (e.g., Cur Hop Limit, Reachable Time,
and Retrans Timer) may contain a value denoting that it is
unspecified. In such cases, the parameter should be ignored and the
host should continue using whatever value it is already using. In
particular, a host MUST NOT interpret the unspecified value as
meaning change back to the default value that was in use before the
first Router Advertisement was received.

The RetransTimer variable SHOULD be copied from the Retrans Timer
field, if the received value is non-zero.

References
[1] IPv6 Core Conformance Spec (PDF)
2024-01-23 03:18:01 +09:00
Lennart Poettering 75673cd8ae user-util: add get{pw,gr}{uid,gid,name}_malloc() helpers
These are wrappers around getpwuid_r() and friends, and will allocate the
right-sized buffer for this call.

We so far had multiple implementations of a buffer allocation loop
around getpwuid_r() and friends, and they all suck in some way. Let's
clean this up and add a common implementation, and use it everywhere.

Also, be more careful with error numbers, in particular systematically
turn ENOENT into ENOSRCH (the former is what is returned if /etc/passwd
is absent, which we want to consider identical to user not existing,
which is ENOSRCH). We so far did this at some invocations, but not all.

There are some invocations of getpwuid() left in the codebase. We really
should fix those too, and have a single unified implementation of the
logic, but those are not as trivial to convert, so left for another
time.
2024-01-22 17:55:07 +01:00
Lennart Poettering 829854afa5 user-util: validate the right field 2024-01-22 17:55:07 +01:00
Lennart Poettering afd08d7740
Merge pull request #31023 from poettering/vmspawn-work
vmspawn: make it work on current fedora
2024-01-22 17:54:43 +01:00
Lennart Poettering 1807baa931 nspawn,vmspawn: let's add some terminal magic to the welcome text
Let's grey the text out, and prefix it with a vertical grey bar, to make
clear this is output from the host, not the payload, and make it clearly
distinguishable from what follows.

Let's also make the image name clickable (with new enough
shared-mime-info this should allow you to look into the image with
gnome-disk-utility or a similar tool.
2024-01-22 16:24:00 +01:00
Lennart Poettering 3df61bf00c vmspawn: make "-m" value formatting independent of locale
We cannot format the memory string via printf() %f format strings, since
that's locale dependent and qemu doesn't like that. hence format this as
an integer. We'll lose sub-MiB accuracy, but systems with less than 1
MiB memory don't really make much sense anyway.
2024-01-22 16:24:00 +01:00
Lennart Poettering dbb2718f92 vmspawn: print a helpful message when we start the VM
Let people know how they can exit the VM, it's not obvious after all.
2024-01-22 16:24:00 +01:00
Lennart Poettering 71e42c36d0 vmspawn: make sure to pass the right firmware image type to qemu
The JSON data reports whether firmware types are qcow or raw. Let's pass
that into the qemu cmdline.
2024-01-22 16:24:00 +01:00
Lennart Poettering e8ce204d86 vmspawn: rework firmware selection logic
Let's make the firmware file to choose configurable, and enumeratable.

This adds --firmware= to select the formare, and in particular
--firmware=list to show available options.
2024-01-22 16:24:00 +01:00
Lennart Poettering 452486cdf6 man: document new rootfs support for pcrlock policies 2024-01-22 15:56:32 +01:00
Lennart Poettering c048d1d28d test: add new credential-based pcrlock policy unlock 2024-01-22 15:20:22 +01:00
Lennart Poettering d37c312b87 pcrlock: when unlocking try to pick up pcrlock policy from system credentials 2024-01-22 15:20:22 +01:00
Lennart Poettering 985a261701 pcrlock: also write pcrlock policy as unencrypted credential to XBOOTLDR/ESP 2024-01-22 14:40:10 +01:00
Lennart Poettering 2bf618331d hostnamectl: add -j switch for quick json output
We already support -j as shortcut for JSON mode in various tools. Let's
add one more. We probably should add this systematically (at least where
it doesn't conflict with an existing -j switch with other purpose). But
I am too lazy to add that now.
2024-01-22 14:39:22 +01:00
Lennart Poettering db21c2ec70 hostnamed: expose /etc/os-release and /etc/machine-info data in full
There's some appetite to have the full os-release/machine-info data
exposed by hostnamed.

let's do so in the Describe() method and via Varlink. It's trivial after
all.

Inspired by: #18649
2024-01-22 14:39:22 +01:00
Lennart Poettering fdc7d50ba4 vmspawn: ENODEV is not the only error the kernel returns if a device is not there
Let's use ERRNO_IS_DEVICE_ABSENT() to cover all cases.

(And while we are at it also use ERRNO_IS_PRIVILEGE() where appropriate)
2024-01-22 14:03:09 +01:00
Lennart Poettering c7c6b6f28c vmspawn: close host vsock fd once we passed it to the child
Without this I qemu simply froze in a weird state for me if I kill it:
it was supposedly a zombie, but we'd get the pidfd POLLIN event for it
only once the fd is closed. Hence let's close it right-away.

(Smells like a kernel issue actually, but too lazy to bother with this).
2024-01-22 14:03:09 +01:00
Lennart Poettering 02aacdcf96 vmspawn: use execv() rather than execve() if we just want to pass 'environ' as env block 2024-01-22 14:03:09 +01:00
Lennart Poettering 400da3e424 vmspawn: modernize setup_notify_parent() a bit 2024-01-22 14:03:09 +01:00
Lennart Poettering 6cff1854f9 vmspawn: rework how we spawn qemu off
Let's swicth to PidRef for tracking the qemu child.

let's also set a bunch of flags that ensure the child inherits less of
of context.
2024-01-22 14:03:09 +01:00
Lennart Poettering 6ce868a0da event-util: add helper for adding pidref child to event loop 2024-01-22 14:03:09 +01:00
Daan De Meyer 166bcaf95f mkosi: Use authselect local profile if it exists
authselect 1.5.0 removed the "minimal" profile and added the "local"
profile instead. Let's modify our post-installation script to take
these changes into account.
2024-01-22 11:42:52 +00:00
nl6720 934288757c tree-wide: link to docs.kernel.org for kernel documentation
https://www.kernel.org/ links to https://docs.kernel.org/ for the documentation.
These URLs are shorter and nicer looking.
2024-01-22 10:50:33 +00:00
Andika Triwidada 0c27049007 po: Translated using Weblate (Indonesian)
Currently translated at 100.0% (227 of 227 strings)

Co-authored-by: Andika Triwidada <andika@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/master/id/
Translation: systemd/main
2024-01-22 10:15:22 +01:00
Adrian Vovk 720c618397 core: path: Re-enter waiting if target is deactivating
Previously, path units would remain in the running state while their
target unit is deactivating. This left a window of time where the target
unit is no longer operational (i.e. it is busy deactivating/cleaning
up/etc) but the path unit would continue to ignore inotify events. In
short: any inotify event that occurs while the target unit deactivates
would be completely lost.

With this commit, the path will go back into a waiting state when the
target unit starts deactivating. This means that any inotify event that
occurs while the target unit deactivates will queue a start job.
2024-01-21 10:34:45 +00:00
Yu Watanabe 1c62c4fe0b network/route: update MTU of IPv6 route even if the kernel returns -EEXIST 2024-01-20 22:17:26 +09:00
Mike Yuan 696f5da420
Merge pull request #31004 from AdrianVovk/misc-cleanups
Misc cleanups
2024-01-20 16:43:20 +08:00
Yu Watanabe c29138697d test-local-addresses: add more test cases 2024-01-20 16:07:19 +09:00
Yu Watanabe e5ee645344 local-addresses: introduce has_local_address() helper function
It will be used later.
2024-01-20 16:07:19 +09:00
Yu Watanabe d10311f407 sd-netlink: drop unused parser for RTA_MULTIPATH 2024-01-20 16:07:19 +09:00
Yu Watanabe 16d95d6ff8 local-addresses: introduce own parser for RTA_MULTIPATH 2024-01-20 16:07:19 +09:00
Yu Watanabe eb1f9ed6a0 local-addresses: also save weight of multipath routes 2024-01-20 16:07:19 +09:00
Yu Watanabe 0b2c0c3159 local-addresses: introduce generic setter add_local_addresses_full() 2024-01-20 16:07:19 +09:00
Yu Watanabe 1305fe4ecf local-addresses: RTA_OIF and RTA_MULTIPATH are exclusive 2024-01-20 16:07:19 +09:00
Yu Watanabe 4019bec852 local-addresses: fix memleak of 'multipath_routes'
Also reduces scopes of some variables.
2024-01-20 16:07:19 +09:00
Yu Watanabe a64f60416c local-addresses: always sort and dedup even if addresses are not requested
Otherwise, the return value may different when ret is NULL or not.
2024-01-20 16:07:19 +09:00
Yu Watanabe e90863f231 local-addresses: ignore tentative addresses
As tentative addresses may be dropped soon if DAD failed.
2024-01-20 16:07:19 +09:00