On Fedora 38 (and probably others), this step fails with:
passwd -dl root
passwd: Only one of -l, -u, -d, -S may be specified.
Use usermod to wipe and disable the root password instead, which should
work properly. We use '!' (opinions seem to differ on how to mark
disabled/unused accounts, but all of '*' '!' '!!' should have the same
effect in practice).
Signed-off-by: Hector Martin <marcan@marcan.st>
Remove anything in parentheses, and also drop the "Apple" prefix for
Apple machines. This converts:
"Apple MacBook Air (13-inch, M2, 2022)"
into:
"MacBookAir"
which is a lot more reasonable.
Other vendors could be added as needed (it's inconsistent whether DT
platforms prefix the model with the vendor or not).
Signed-off-by: Hector Martin <marcan@marcan.st>
Non-DMI platforms may have a device tree instead (e.g. many embedded
devices, Apple Silicon Macs). If we find a model string in the DT, use
that as a fallback when DMI is not available.
Signed-off-by: Hector Martin <marcan@marcan.st>
Some distro's let the user change the hostname at will;
others don't, and yet others don't have systemd to change
the hostname with at all. Check if we **can** change the
hostname (as a non-root user), before setting expectations.
- in 3.3, the legacy values are ignored, so all the old-style
tests behave as if nothing is set at all.
- Some tests used old-style settings, adapt to newer ones.
This is a rather clunky implementation of re-check requirements.
"Clunky" because the UI parts are re-created each time, rather
than fishing from a model of checked (or unchecked) requirements.
The Widgets parts should be updated to use a full model, rather
than the recreate-list-of-Widgets implementation they have now.
Unrelated changes pull in a bunch of improvements to the
waiting spinner widget.
Exactly one kind of setting-hostname is done, and that's
entirely independent of writing /etc/hosts. Don't make it
a set of flags, use an enum and a bool.