]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
7 months agomeson: use more features provided by newer meson 36610/head
Yu Watanabe [Wed, 5 Mar 2025 13:00:41 +0000 (22:00 +0900)] 
meson: use more features provided by newer meson

No functional change. Preparation for future bump of required meson
version.

7 months agomeson: use install_symlink() where applicable
Yu Watanabe [Tue, 4 Mar 2025 21:27:08 +0000 (06:27 +0900)] 
meson: use install_symlink() where applicable

Now our baseline of meson is 0.62, hence install_symlink() can be used.

Note, install_symlink() implies install_emptydir() for specified
install_dir. Hence, this also drops several unnecessary
install_emptydir() calls.

Note, the function currently does not support 'relative' and 'force' flags,
so several 'ln -frsT' inline calls cannot be replaced.

7 months agomeson: invert version check condition to magically suppress warning
Yu Watanabe [Wed, 5 Mar 2025 12:39:06 +0000 (21:39 +0900)] 
meson: invert version check condition to magically suppress warning

Then, it works with --fatal-meson-warnings.

7 months agotest-network: replace symlink to 99-default.link with a copy
Yu Watanabe [Tue, 4 Mar 2025 23:07:07 +0000 (08:07 +0900)] 
test-network: replace symlink to 99-default.link with a copy

Then, we can drop ugly workaround in meson.build.
The .link file is not necessarily synced with 99-default.link.
Also, 99-default.link is not updated so frequently.
Let's manually sync it when necessary.

7 months agomeson: bump required minimum version to 0.62.0
Yu Watanabe [Tue, 4 Mar 2025 18:14:04 +0000 (03:14 +0900)] 
meson: bump required minimum version to 0.62.0

The commit 8442ac9c0264ac7beb5afd6c3bf922030a6edaf3 set
install_tag option to install_emptydir() calls, but it requires
meson-0.62.0. Hence, after the commit, we cannot build systemd
with older meson anymore. As using install_tag is quite useful
for building systemd package, let's bump the requirement of
meson version to 0.62.0.

Note, the current meson versions of major distributions are:
CentOS 9:  0.63.3
CentOS 10: 1.4.1
Fedora 40: 1.4.1
Fedora 41: 1.5.1
Ubuntu 20.04 LTS (focal): 0.53.2 -- EOL on 2025-04
Ubuntu 22.04 LTS (jammy): 0.61.2 -- EOL on 2027-04
Ubuntu 24.04 LTS (noble): 1.3.2
Ubuntu 24.10 (oracular):  1.5.2
Debian 11 (bullseye): 0.56.2 (1.0.0 in backports) -- EOL on 2024-08
Debian 12 (bookworm): 1.0.1  (1.5.1 in backports)
openSUSE Leap 15.6:  1.6.1
openSUSE Tumbleweed: 1.6.1

As the next version (v258) is not expected to be released before
the end of 2025-04, it is OK to cut the support of Ubuntu 20.04 LTS and
Debian 11. Also, our policy for support of distributions explicitly says
only latest Ubuntu LTS and non-LTS releases are supported.
Hence, we can also cut Ubuntu 22.04, even if it is not EOL.

Follow-up for 8442ac9c0264ac7beb5afd6c3bf922030a6edaf3.
Closes #35967.

7 months agopo: add false positives to POTFILES.skip
Piotr Drąg [Sun, 9 Mar 2025 11:26:21 +0000 (12:26 +0100)] 
po: add false positives to POTFILES.skip

Scripts used to detect files that should be in POTFILES.in, like
intltool-update -m used on https://l10n.gnome.org/module/systemd/,
falsely detect these files as containing translations. Avoid this
behavior by putting the files in POTFILES.skip.

8 months agopo: Translated using Weblate (Estonian)
Henri Aunin [Sun, 9 Mar 2025 02:33:03 +0000 (02:33 +0000)] 
po: Translated using Weblate (Estonian)

Currently translated at 79.3% (204 of 257 strings)

Co-authored-by: Henri Aunin <contact+fedora@hen.ee>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/et/
Translation: systemd/main

8 months agomount-setup: two trivial cleanups (#36668)
Yu Watanabe [Sun, 9 Mar 2025 00:42:41 +0000 (09:42 +0900)] 
mount-setup: two trivial cleanups (#36668)

8 months agocore/main: several cleanups (#36669)
Yu Watanabe [Sun, 9 Mar 2025 00:40:19 +0000 (09:40 +0900)] 
core/main: several cleanups (#36669)

Prompted by #36622

8 months agopo: Translated using Weblate (Estonian)
H A [Sat, 8 Mar 2025 20:45:51 +0000 (20:45 +0000)] 
po: Translated using Weblate (Estonian)

Currently translated at 61.4% (158 of 257 strings)

Co-authored-by: H A <contact+fedora@hen.ee>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/et/
Translation: systemd/main

8 months agocore/main: correct retval for reexec/switch-root/soft-reboot 36669/head
Mike Yuan [Wed, 5 Mar 2025 17:35:50 +0000 (18:35 +0100)] 
core/main: correct retval for reexec/switch-root/soft-reboot

For these objectives we ought to execve() at the end, i.e. if we
ever hit the return path something went wrong in do_reexecute().
Let's properly report that via retval.

8 months agocore/main: preemptively check existence of init only if we're switching root
Mike Yuan [Sat, 8 Mar 2025 19:09:58 +0000 (20:09 +0100)] 
core/main: preemptively check existence of init only if we're switching root

Follow-up for aaa27e2e21c04339914f26b7125789087eb51166

The commit described about system potentially becoming undebuggable
after switching into broken root or whatnot. But notably we can never
activate emergency.target after do_reexecute() failure, since the Manager
has been destructed. Plus, for a normal reexecution the fallback shell logic
triggered on non-existent /sbin/init is kinda useful. Let's hence guard
the extra check behind switch-root.

Also, move the check below /run/nextroot/ detection.

8 months agocore/main: assign mac_init() retval to r
Mike Yuan [Wed, 5 Mar 2025 17:22:19 +0000 (18:22 +0100)] 
core/main: assign mac_init() retval to r

If it fails, we'd submit the errno to supervisor via sd_notify() later.

8 months agocore/main: log about save_env() error
Mike Yuan [Sat, 8 Mar 2025 19:04:17 +0000 (20:04 +0100)] 
core/main: log about save_env() error

8 months agocore/main: port to log_syntax_parse_error()
Mike Yuan [Sat, 8 Mar 2025 18:41:29 +0000 (19:41 +0100)] 
core/main: port to log_syntax_parse_error()

8 months agocore: move CrashAction enum def to crash-handler.[ch]
Mike Yuan [Sat, 8 Mar 2025 18:27:55 +0000 (19:27 +0100)] 
core: move CrashAction enum def to crash-handler.[ch]

8 months agocore/meson: move efi-random.c out of libcore
Mike Yuan [Sat, 8 Mar 2025 18:23:04 +0000 (19:23 +0100)] 
core/meson: move efi-random.c out of libcore

It's used only in core/main.c

8 months agocore/main: remove unused include
Mike Yuan [Sat, 8 Mar 2025 18:37:19 +0000 (19:37 +0100)] 
core/main: remove unused include

8 months agomount-setup: tune down log level if usrquota is not supported, apply usrquota when... 36668/head
Mike Yuan [Thu, 6 Mar 2025 12:14:13 +0000 (13:14 +0100)] 
mount-setup: tune down log level if usrquota is not supported, apply usrquota when smack is in use too

Follow-up for 8f5131fb9e7979022521d685e69b6419f0884677

8 months agomount-setup: drop outdated comment
Mike Yuan [Sat, 8 Mar 2025 18:13:44 +0000 (19:13 +0100)] 
mount-setup: drop outdated comment

8 months agonetwork: remove useless loop (#36648)
Matteo Croce [Sat, 8 Mar 2025 16:39:09 +0000 (17:39 +0100)] 
network: remove useless loop (#36648)

In route_metric_can_update() the loop iterates over the metrics, but
skips all indices except for RTAX_MTU.

Replace it with a simple compare.

8 months agokeyutil: support adding content into PKCS#7 signature (#36663)
Luca Boccassi [Sat, 8 Mar 2025 01:42:20 +0000 (01:42 +0000)] 
keyutil: support adding content into PKCS#7 signature (#36663)

Support including the data that was signed inside the PKCS#7 signature.
This creates a self-contained file where the signature of the data can
be verified without any other information, since the file contains the
data, signature, and certificate (which contains the public key used for
the signing).

One use case of this is IPE which requires a PKCS#7 signature that is
not "detached", i.e. includes the IPE configuration that has been
signed.

This also slightly adjusts the test case to use the x509 certificate
inside the PKCS#7 signature instead of supplying it externally during
verification.

8 months agokeyutil: support adding content into PKCS#7 signature 36663/head
Dan Streetman [Mon, 3 Mar 2025 19:49:23 +0000 (14:49 -0500)] 
keyutil: support adding content into PKCS#7 signature

8 months agohomed: add key management toolchain (#36513)
Lennart Poettering [Fri, 7 Mar 2025 21:19:33 +0000 (22:19 +0100)] 
homed: add key management toolchain (#36513)

if Lennart shall dogfood ParticleOS he needs acceptable tooling for
making his homed home dir accessible from his legacy fedora install, and
from local and remote particleos. Let's add explicit support for
scenarios like this:

1. add high level support for enrolling the account signing key from the
fedora install
2. add high level support for "adopting" a local but foreign .home file
on a system
3. add high level support for "registering" a remote user account on a
different system

(this lacks test cases and some docs, hence marked as wip)

8 months agovirt: detect "linux,dummy-virt" devicetree VMs (#36655)
Lennart Poettering [Fri, 7 Mar 2025 17:24:24 +0000 (18:24 +0100)] 
virt: detect "linux,dummy-virt" devicetree VMs (#36655)

8 months agoadd a mime type for *.home LUKS home dir files too (#36662)
Lennart Poettering [Fri, 7 Mar 2025 17:24:08 +0000 (18:24 +0100)] 
add a mime type for *.home LUKS home dir files too (#36662)

8 months agoupdate TODO 36513/head
Lennart Poettering [Thu, 27 Feb 2025 21:59:02 +0000 (22:59 +0100)] 
update TODO

8 months agotest: add integration test for the functionality added in this PR
Lennart Poettering [Thu, 27 Feb 2025 16:20:29 +0000 (17:20 +0100)] 
test: add integration test for the functionality added in this PR

8 months agohomectl: rearrange --help text with sections
Lennart Poettering [Fri, 28 Feb 2025 10:07:20 +0000 (11:07 +0100)] 
homectl: rearrange --help text with sections

We support so many verbs now, help the user with some structure

8 months agohomectl: add interface for controlling storage for negative machine ID matches
Lennart Poettering [Wed, 19 Feb 2025 20:56:54 +0000 (21:56 +0100)] 
homectl: add interface for controlling storage for negative machine ID matches

8 months agohomed: re-establish inotify watches on SIGUSR1
Lennart Poettering [Fri, 28 Feb 2025 15:53:58 +0000 (16:53 +0100)] 
homed: re-establish inotify watches on SIGUSR1

Let's define a clean way how we can reestablish file watches in homed.
This is a relevant in case we overmount /home/ as a whole. It's very
useful for our testcase in particular.

8 months agohomed: suppress warning if quota is not on on /var/ and elsewhere
Lennart Poettering [Fri, 28 Feb 2025 14:19:36 +0000 (15:19 +0100)] 
homed: suppress warning if quota is not on on /var/ and elsewhere

8 months agohomed: rescan /home/ in more occasions automatically
Lennart Poettering [Fri, 28 Feb 2025 07:47:46 +0000 (08:47 +0100)] 
homed: rescan /home/ in more occasions automatically

When unregistering a home there's a chance this "reveals" another home
by the same name in /home/, hence immediately schedule a rescan, the
same way we already schedule it in on remove.

Also, drop the conditionalization when scheduling a rescan during
remove, for the same reasons: a remove might reveal another home, and we
cannot check for that ahead of time. Trying to check is kinda a
pointless optimization anyway, since this is not a frequent operation
and rescanning is not the end of the world.

8 months agohomectl: making stripping of signatures from user records optional
Lennart Poettering [Thu, 27 Feb 2025 17:26:18 +0000 (18:26 +0100)] 
homectl: making stripping of signatures from user records optional

8 months agohomectl: also support registering (rather than creating) home directories via system...
Lennart Poettering [Thu, 20 Feb 2025 10:05:28 +0000 (11:05 +0100)] 
homectl: also support registering (rather than creating) home directories via system credentials

8 months agohomectl: expose "register" verb to register a user record locally
Lennart Poettering [Thu, 20 Feb 2025 09:21:57 +0000 (10:21 +0100)] 
homectl: expose "register" verb to register a user record locally

8 months agohomed: add concept for "adopting" an existing homedir locally
Lennart Poettering [Thu, 20 Feb 2025 08:52:18 +0000 (09:52 +0100)] 
homed: add concept for "adopting" an existing homedir locally

Currently homed scans /home/ via inotify for new .home + .homedir/
popping up to register as local users. Let's also add an explicit way to
request this form of "adoption": a bus call that takes a path and that
makes a home dir activatable locally.

(Usecase: you cross boot between two systems – let's say your traditional
fedora and your ParticleOS – and want to use the same homedir from both:
simply mount the /home dir from the other somewhere, and then hit
"homectl adopt /somewhere/lennart.home" and you have the user locally
too).

8 months agouser-record: add a concept of inverting per-host matching sections in user record
Lennart Poettering [Wed, 19 Feb 2025 16:15:56 +0000 (17:15 +0100)] 
user-record: add a concept of inverting per-host matching sections in user record

Sometimes it is useful to apply options on all hosts except some. Add a
simple concept for that.

8 months agohomectl: add a 'dry-run' mode for registering/creating users
Lennart Poettering [Wed, 19 Feb 2025 20:25:34 +0000 (21:25 +0100)] 
homectl: add a 'dry-run' mode for registering/creating users

Since this only covers user creation/registration for now, let's hide it
behind an env var. We might reconsider this eventually and make it a
proper switch one day, but who knows, it after all has this "debug tool"
wiff.

8 months agohomectl: also import signing keys at firstboot time
Lennart Poettering [Wed, 19 Feb 2025 21:53:21 +0000 (22:53 +0100)] 
homectl: also import signing keys at firstboot time

8 months agohomectl: add signing key management verbs
Lennart Poettering [Wed, 19 Feb 2025 08:41:48 +0000 (09:41 +0100)] 
homectl: add signing key management verbs

8 months agohomed: add apis for managing home signing keys
Lennart Poettering [Tue, 18 Feb 2025 23:04:03 +0000 (00:04 +0100)] 
homed: add apis for managing home signing keys

This makes it easier to actually migrate home directories between
systems.

8 months agouserdbctl: optionally show user/group data from JSON filerather than from system
Lennart Poettering [Wed, 19 Feb 2025 20:56:14 +0000 (21:56 +0100)] 
userdbctl: optionally show user/group data from JSON filerather than from system

8 months agoopenssl-util: add helper for converting EVP_PKEY to PEM string
Lennart Poettering [Tue, 18 Feb 2025 23:03:12 +0000 (00:03 +0100)] 
openssl-util: add helper for converting EVP_PKEY to PEM string

And also give the rverse a bit of love.

8 months agohostnamectl: show transient hostname before static hostname
Lennart Poettering [Fri, 7 Mar 2025 14:11:58 +0000 (15:11 +0100)] 
hostnamectl: show transient hostname before static hostname

The transient one is generally the more relevant one, since it is
typically used to reach this host remotely, and it's what shells show
you. Hence show it first.

8 months agotest: run PKCS#7 verification with both internal and external certificates
Dan Streetman [Fri, 7 Mar 2025 16:35:05 +0000 (11:35 -0500)] 
test: run PKCS#7 verification with both internal and external certificates

8 months agomime: add mimetype for luks home dir 36662/head
Lennart Poettering [Fri, 7 Mar 2025 16:20:24 +0000 (17:20 +0100)] 
mime: add mimetype for luks home dir

8 months agomime: use 'addon' icon for sysext ddis
Lennart Poettering [Fri, 7 Mar 2025 16:20:12 +0000 (17:20 +0100)] 
mime: use 'addon' icon for sysext ddis

8 months agorules: tag /dev/tpm0 with "systemd" too
Lennart Poettering [Fri, 7 Mar 2025 13:55:43 +0000 (14:55 +0100)] 
rules: tag /dev/tpm0 with "systemd" too

Strictly speaking we don't need to tag these devices, because tpm2-tss
already does so, but given we do this for /dev/tpmrm0, we should
probably do this comprehensively if we rely on this ourselves.

Fixes: #36653
8 months agomkosi: Skip other build scripts if we're running clangd
Daan De Meyer [Fri, 7 Mar 2025 15:05:49 +0000 (16:05 +0100)] 
mkosi: Skip other build scripts if we're running clangd

8 months agomkosi: Switch to --rerun-build-scripts in mkosi.clangd
Daan De Meyer [Fri, 7 Mar 2025 14:56:24 +0000 (15:56 +0100)] 
mkosi: Switch to --rerun-build-scripts in mkosi.clangd

8 months agomkosi: Disable BuildSourcesEphemeral= (#36646)
Daan De Meyer [Fri, 7 Mar 2025 14:55:05 +0000 (15:55 +0100)] 
mkosi: Disable BuildSourcesEphemeral= (#36646)

None of the package specs leave leftover files in the source directory
anymore, so let's stop using BuildSourcesEphemeral=yes and check in CI
that we don't regress.

8 months agomkosi: Disable BuildSourcesEphemeral= 36646/head
Daan De Meyer [Thu, 6 Mar 2025 22:20:59 +0000 (23:20 +0100)] 
mkosi: Disable BuildSourcesEphemeral=

Let's stop using BuildSourcesEphemeral= and instead make sure we don't
generate any auxiliary files during the mkosi build process.

We achieve this through a combination of trap to remove any new files
we create and bind mounts from /tmp over existing files whenever we need
to modify an existing file.

We also add a CI step to ensure we don't regress

8 months agoopensuse: Drop workarounds
Daan De Meyer [Fri, 7 Mar 2025 13:55:08 +0000 (14:55 +0100)] 
opensuse: Drop workarounds

None of these should be needed anymore.

8 months agovirt: detect "linux,dummy-virt" devicetree VMs 36655/head
Lennart Poettering [Fri, 7 Mar 2025 10:57:43 +0000 (11:57 +0100)] 
virt: detect "linux,dummy-virt" devicetree VMs

So apparently "linux,dummy-virt" is a devicetree in popular use by
various hypervisors, including crosvm:

https://github.com/google/crosvm/blob/e5d7a64d377d00b9b96bc026548769ab59cf216b/aarch64/src/fdt.rs#L692

and qemu:

https://github.com/qemu/qemu/blob/98c7362b1efe651327385a25874a73e008c6549e/hw/arm/virt.c#L283

and that's because the kernel ships support for that natively:

https://www.kernel.org/doc/Documentation/devicetree/bindings/arm/linux%2Cdummy-virt.yaml

It's explicitly for using in virtualization. Hence it's suitable for
detecting it as generic fallback.

This hence adds the check, similar to how we already look for one other
qemu-specific devicetree.

I ran into this while playing around with the new Pixel "Linux Terminal"
app from google which runs a Debian in a crosvm apparently. So far
systemd didn't recognize execution in it at all. Let's at least
recognize it as VM at all, even if this doesn't recognize it as
crosvm.

8 months agovirt: some modernizations
Lennart Poettering [Fri, 7 Mar 2025 10:56:33 +0000 (11:56 +0100)] 
virt: some modernizations

Reduce scope of certain allocations, add more debug logging, and improve
some log messages.

8 months agoupdate TODO
Lennart Poettering [Fri, 7 Mar 2025 13:55:38 +0000 (14:55 +0100)] 
update TODO

8 months agopid1: lower log level if BPF LSM is not available
Lennart Poettering [Fri, 7 Mar 2025 09:37:54 +0000 (10:37 +0100)] 
pid1: lower log level if BPF LSM is not available

Currently, if you boot PID 1 in a container you always see a complaint
that BPF LSM won't work. That's fine, and log worthy, but probably not
above debug level. After all this is a really common case, and we should
gracefully adopt to our execution environment.

8 months agomkosi: update fedora commit reference
Daan De Meyer [Fri, 7 Mar 2025 12:38:00 +0000 (13:38 +0100)] 
mkosi: update fedora commit reference

38b41a729e Clean up debuginfo files as well in %clean
7bc5883654 Fix missing question mark
d22561d59e Also drop auxiliary files related to sysusers compat
e825459f2d Change python-zstd depenedency to python-zstandard
0a3907745e Version 257.4
1bdfa29ce2 Neuter sysusers macros

8 months agoload-fragment: Fix config_parse_namespace_flags() for DelegateNamespaces= (#36633)
Luca Boccassi [Fri, 7 Mar 2025 11:58:13 +0000 (11:58 +0000)] 
load-fragment: Fix config_parse_namespace_flags() for DelegateNamespaces= (#36633)

Boolean values have to be handled separately for RestrictNamespaces=
because
they get stored in a field with reverse meaning (which namespaces are
retained),
so let's check which field we're parsing and set the proper value
accordingly.

8 months agocore: Debug log if we cannot change the controlling terminal
Daan De Meyer [Thu, 6 Mar 2025 19:26:07 +0000 (20:26 +0100)] 
core: Debug log if we cannot change the controlling terminal

8 months agohostnamectl: show image info in hostnamectl (#36638)
Luca Boccassi [Thu, 6 Mar 2025 22:36:20 +0000 (22:36 +0000)] 
hostnamectl: show image info in hostnamectl (#36638)

On image-based systems these properties are quite fundamental, hence
show them in the hostnamed output.

8 months agodissect: accept --usr-hash=… too, similar to --root-hash=…
Lennart Poettering [Thu, 6 Mar 2025 08:30:48 +0000 (09:30 +0100)] 
dissect: accept --usr-hash=… too, similar to --root-hash=…

This addresses an omission, given that we have both kinds of hashes
these days.

8 months agoadd vsock-mux/* in ssh config drop-in
Дамјан Георгиевски [Thu, 6 Mar 2025 20:29:44 +0000 (21:29 +0100)] 
add vsock-mux/* in ssh config drop-in

https://github.com/systemd/systemd/pull/32941
added support for firecracker/cloud-hypervisor and
their unix-domain socket to AF_VSOCK multiplex.

but I forgot to add the pattern in the ssh config drop-in.
fix it now!

8 months agoTEST-13-NSPAWN: Set TERM=dumb when calling machinectl shell
Daan De Meyer [Thu, 6 Mar 2025 16:31:49 +0000 (17:31 +0100)] 
TEST-13-NSPAWN: Set TERM=dumb when calling machinectl shell

We only consider something not a tty if it's not connected to a tty
and not connected to /dev/null, so let's use the environment variable
instead to tell machinectl shell that it shouldn't do any of its TTY
stuff.

8 months agoterminal-util: during terminal reset clear from beginning of line to end of screen
Lennart Poettering [Thu, 6 Mar 2025 15:07:02 +0000 (16:07 +0100)] 
terminal-util: during terminal reset clear from beginning of line to end of screen

tianocore does some weird shit with its terminal emulation and regular
fills half the terminal with grey background and then invokes us with
this not cleared up. Hence let us clear this up for it: as part of the
ansi sequence based reset let's position the cursor explicitly at the
beginning of the current line, and erase everything till the end of the
screen. This makes boot output in tianocore vms much much cleaner.

Note that this does *not* erase any terminal output *before* the cursor
position where we take over, because that typically contains valuable
information still we should not erase.

8 months agoupdate TODO
Lennart Poettering [Thu, 6 Mar 2025 22:11:20 +0000 (23:11 +0100)] 
update TODO

8 months agoupdate TODO
Lennart Poettering [Thu, 6 Mar 2025 17:30:09 +0000 (18:30 +0100)] 
update TODO

8 months agoFactory reset followup (#36621)
Lennart Poettering [Thu, 6 Mar 2025 16:43:04 +0000 (17:43 +0100)] 
Factory reset followup (#36621)

@poettering hrm, there's still one thing unclear to me: we currently
have no way for canceling factory reset via IPC. And adding that to
varlink service solely doesn't seem feasible either, since the state
departs from the active state of `factory-reset.target` and it would
become impossible to re-request it without restarting
`factory-reset.target` _and all dependencies_, which feels
unmaintainable.

8 months agodocs: mention when /var/ has to be writable
Lennart Poettering [Thu, 6 Mar 2025 15:06:35 +0000 (16:06 +0100)] 
docs: mention when /var/ has to be writable

In light of https://github.com/systemd/systemd/issues/36635 let's
clarify things a bit regarding writability of /var/.

8 months agohostnamectl: add usual ansi underlining to --help text 36638/head
Lennart Poettering [Thu, 6 Mar 2025 10:42:11 +0000 (11:42 +0100)] 
hostnamectl: add usual ansi underlining to --help text

8 months agohostnamectl: show image info in hostnamectl
Lennart Poettering [Thu, 6 Mar 2025 11:02:10 +0000 (12:02 +0100)] 
hostnamectl: show image info in hostnamectl

On image-based systems these properties are quite fundamental, hence
show them in the hostnamed output.

8 months agoportable: Set DelegateNamespaces=no for all portable profiles 36633/head
Daan De Meyer [Thu, 6 Mar 2025 13:17:14 +0000 (14:17 +0100)] 
portable: Set DelegateNamespaces=no for all portable profiles

We don't want to delegate any namespaces to portable services, so
let's explicitly set DelegateNamespaces=no in the portable profiles.

8 months agoload-fragment: Fix config_parse_namespace_flags() for DelegateNamespaces=
Daan De Meyer [Thu, 6 Mar 2025 13:15:34 +0000 (14:15 +0100)] 
load-fragment: Fix config_parse_namespace_flags() for DelegateNamespaces=

Boolean values have to be handled separately for RestrictNamespaces= because
they get stored in a field with reverse meaning (which namespaces are retained),
so let's check which field we're parsing and set the proper value accordingly.

8 months agosysext,sysupdate: resolve incompatibilities (#36617)
Lennart Poettering [Thu, 6 Mar 2025 13:05:35 +0000 (14:05 +0100)] 
sysext,sysupdate: resolve incompatibilities (#36617)

Fixes #24562.
Fixes #34445.
Replaces #36311.

8 months agoudev-builtin-blkid: ignore root partitions with name "_empty"
Lennart Poettering [Wed, 5 Mar 2025 15:13:02 +0000 (16:13 +0100)] 
udev-builtin-blkid: ignore root partitions with name "_empty"

This is how sysupdate marks empty partitions, hence ignore that.

Kinda a follow-up for 54ae0edc4aabb6017f6169b1eac5faf0a407d67b

8 months agotree-wide: drop unnecessary break in default branch
Yu Watanabe [Wed, 5 Mar 2025 13:30:48 +0000 (22:30 +0900)] 
tree-wide: drop unnecessary break in default branch

8 months agoupdate TODO
Lennart Poettering [Thu, 6 Mar 2025 10:30:06 +0000 (11:30 +0100)] 
update TODO

8 months agogpt-auto: image policy fixes (#36629)
Lennart Poettering [Thu, 6 Mar 2025 10:27:35 +0000 (11:27 +0100)] 
gpt-auto: image policy fixes (#36629)

Let's make sure we can define a proper image policy on ParticleOS
images.

8 months agosysupdate: don't get confused by sysext on /usr/ 36617/head
Lennart Poettering [Wed, 5 Mar 2025 13:23:17 +0000 (14:23 +0100)] 
sysupdate: don't get confused by sysext on /usr/

Fixes: #24562
8 months agosysext: export backing devnum in metadata dir
Lennart Poettering [Wed, 5 Mar 2025 14:22:45 +0000 (15:22 +0100)] 
sysext: export backing devnum in metadata dir

8 months agosysext: execute merge even if no extensions are installed as long as --mutable= is on
Lennart Poettering [Wed, 5 Mar 2025 13:22:54 +0000 (14:22 +0100)] 
sysext: execute merge even if no extensions are installed as long as --mutable= is on

This way we can make an immutable OS mutable, without any extensions or
so.

Fixes: #34445
8 months agogpt-auto-generator: do not apply image policy on the root fs and /usr/ fs 36629/head
Lennart Poettering [Thu, 6 Mar 2025 08:38:25 +0000 (09:38 +0100)] 
gpt-auto-generator: do not apply image policy on the root fs and /usr/ fs

At the moment the gpt-auto generator does its things we already
transitioned into the host OS, i.e. the root fs and /usr/ are mounted.
Hence suppress image policy checks for those two partitions.

This actually matters, because the root hash/usr hash is taken into
consideration for the image policy checks, but we don't have that in
gpt-auto and hence would refuse operation claiming policy conflicts
event though we never actually operate on the root fs via the dissection
logic.

8 months agogpt-auto-generator: move around in_initrd() tests
Lennart Poettering [Thu, 6 Mar 2025 08:35:59 +0000 (09:35 +0100)] 
gpt-auto-generator: move around in_initrd() tests

The partition enumeration only runs on the main system, and we test that
early, hence no point in repeating this in functions further down the
call chain. But let's keep it in place as assert()s, just in case.

Also, move the top-level in_initrd() into add_mounts(), so that the
tests are nicely encapsulated in the code they protect.

8 months agoimage-policy: add image_policy_ignore_designators() helper
Lennart Poettering [Thu, 6 Mar 2025 08:33:53 +0000 (09:33 +0100)] 
image-policy: add image_policy_ignore_designators() helper

This new helper patches a provide image policy, setting the policy for
specified designators to "ignore".

This is useful for contexts where we only want to mount some subset of
the available partitions, and hence don't care about the parts of the
policy that cover the others. Specifically this is useful in
systemd-gpt-auto-generator, which runs at a moment the root file system
is already established, and hence the policy for the root file system
can be ignored, the facts are already established.

8 months agomkosi: update debian commit reference
Luca Boccassi [Wed, 5 Mar 2025 21:37:13 +0000 (21:37 +0000)] 
mkosi: update debian commit reference

dfdab6b205 Install new files
e00bee5b4a Install new files

8 months agomkosi: update fedora commit reference
Daan De Meyer [Wed, 5 Mar 2025 20:27:17 +0000 (21:27 +0100)] 
mkosi: update fedora commit reference

4ab2a9e539 Drop old self-Obsoletes and provides
ec182495e7 Drop libbpf versioned dependency version to 1.4.7
1f8d2b0ebd Make self-obsoletes for the sysusers split conditional
0d95af264f Include epoch in versioned libbpf dependency
8230f501b6 Make sure we pull in libbpf >= 1.5.0 if libbpf is installed

8 months agomkosi: Don't install dnf anymore on Fedora
Daan De Meyer [Wed, 5 Mar 2025 19:07:59 +0000 (20:07 +0100)] 
mkosi: Don't install dnf anymore on Fedora

We have dnf5 on Fedora, no need to install dnf there anymore

8 months agodissect: show basic image data even when can't enter the file systems
Lennart Poettering [Tue, 28 Jan 2025 15:52:01 +0000 (16:52 +0100)] 
dissect: show basic image data even when can't enter the file systems

8 months agohibernate-resume-config: log louder on invalid kernel version/os-release id 36621/head
Mike Yuan [Wed, 5 Mar 2025 15:25:48 +0000 (16:25 +0100)] 
hibernate-resume-config: log louder on invalid kernel version/os-release id

Prompted by 45623d4ad63243f96614013600167cf080efc353

We do make use of the os-release ids to determine whether to initial resume
if they're present, hence log at warning level if invalid. While at it,
raise the level for the kernel version too, which is generally interesting
to the user if something goes wrong.

8 months agofactory-reset-tool: error out if we can't cancel pending reset
Mike Yuan [Wed, 5 Mar 2025 16:01:04 +0000 (17:01 +0100)] 
factory-reset-tool: error out if we can't cancel pending reset

First of all, it seems very unlikely that we'd be in the pending state
if not booted via EFI in the first place. Moreover, the operation didn't
work out, hence let's not spurious report success.

8 months agotpm2-clear: fix typo
Yu Watanabe [Wed, 5 Mar 2025 16:09:12 +0000 (01:09 +0900)] 
tpm2-clear: fix typo

Follow-up for 73e53d2ee442896dc54e7a64e0a24ef235e8aff5.

8 months agofactory-reset: fix typo
Yu Watanabe [Wed, 5 Mar 2025 16:07:38 +0000 (01:07 +0900)] 
factory-reset: fix typo

Follow-up for 41d9ed93d9089f0d18da4bbade8986ba6a35349a.

8 months agotpm2-clear: make it clear that we default to true for systemd.tpm2_allow_clear
Mike Yuan [Wed, 5 Mar 2025 15:13:55 +0000 (16:13 +0100)] 
tpm2-clear: make it clear that we default to true for systemd.tpm2_allow_clear

8 months agotpm2-clear: make getenv() failure fatal, correct one log level
Mike Yuan [Wed, 5 Mar 2025 15:07:50 +0000 (16:07 +0100)] 
tpm2-clear: make getenv() failure fatal, correct one log level

This operation is destructive, and we bail if the proc_cmdline_get_bool()
call below fails already. Better be safe than sorry.

8 months agotpm2-clear: use plain DEFINE_MAIN_FUNCTION
Mike Yuan [Wed, 5 Mar 2025 15:06:00 +0000 (16:06 +0100)] 
tpm2-clear: use plain DEFINE_MAIN_FUNCTION

We don't return any positive exit status.

8 months agounits/meson: remove unneeded linebreak
Mike Yuan [Wed, 5 Mar 2025 14:59:14 +0000 (15:59 +0100)] 
units/meson: remove unneeded linebreak

8 months agounits: refuse manual operations on factory-reset-now.target and friends
Mike Yuan [Wed, 5 Mar 2025 14:54:26 +0000 (15:54 +0100)] 
units: refuse manual operations on factory-reset-now.target and friends

It is strictly mandatory that this is done during initial
transaction, and not later when the system is already running.
Hence let's refuse manual start for all of the involved units.
Additionally, refuse manual stop for systemd-factory-reset-complete.service,
as it flags the factory reset completion through
/run/systemd/factory-reset-complete, which never gets removed
for the whole boot.

8 months agosysupdate: fix features and vaccum if all features are disabled
Thorsten Kukuk [Fri, 28 Feb 2025 13:01:16 +0000 (14:01 +0100)] 
sysupdate: fix features and vaccum if all features are disabled

If all transfer definitions are features and disabled, a wrong error
is reported that there are no transfer definitions.
This breaks the features and vaccum verb, as they work on disabled
features, too.

8 months agofactory-reset: rework infrastructure, make it work with gpt-auto, and add support...
Lennart Poettering [Wed, 5 Mar 2025 14:25:36 +0000 (15:25 +0100)] 
factory-reset: rework infrastructure, make it work with gpt-auto, and add support for resetting TPM as part of factory reset (#36512)