]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
12 months agodocs: add reminder to run update-man-rules before tagging a release 35055/head
Luca Boccassi [Wed, 6 Nov 2024 19:21:14 +0000 (19:21 +0000)] 
docs: add reminder to run update-man-rules before tagging a release

12 months agodocs: remove 'v' prefix from meson.version
Luca Boccassi [Wed, 6 Nov 2024 19:20:00 +0000 (19:20 +0000)] 
docs: remove 'v' prefix from meson.version

It is actually v-less

12 months agoman: run update-man-rules
Luca Boccassi [Wed, 6 Nov 2024 19:19:13 +0000 (19:19 +0000)] 
man: run update-man-rules

12 months agoman: fix syntax error in systemd-sbsign.xml
Luca Boccassi [Wed, 6 Nov 2024 19:18:15 +0000 (19:18 +0000)] 
man: fix syntax error in systemd-sbsign.xml

Follow-up for 5f163921e9ff6d735798db259c47543822f81b5c

12 months agomeson: update version numbers for 257~rc1 v257-rc1
Luca Boccassi [Wed, 6 Nov 2024 16:54:53 +0000 (16:54 +0000)] 
meson: update version numbers for 257~rc1

12 months agoNEWS: finalize
Luca Boccassi [Wed, 6 Nov 2024 16:58:00 +0000 (16:58 +0000)] 
NEWS: finalize

12 months agoNEWS: update list of contributors
Luca Boccassi [Wed, 6 Nov 2024 16:53:46 +0000 (16:53 +0000)] 
NEWS: update list of contributors

12 months agoNEWS: add note about sd-sbsign
Luca Boccassi [Wed, 6 Nov 2024 16:49:42 +0000 (16:49 +0000)] 
NEWS: add note about sd-sbsign

12 months agoUpdate hwdb and translations (#35048)
Luca Boccassi [Wed, 6 Nov 2024 16:42:11 +0000 (16:42 +0000)] 
Update hwdb and translations (#35048)

12 months agoIntroduce systemd-sbsign to do secure boot signing (#35021)
Daan De Meyer [Wed, 6 Nov 2024 16:38:10 +0000 (17:38 +0100)] 
Introduce systemd-sbsign to do secure boot signing (#35021)

Currently in mkosi and ukify we use sbsigntools to do secure boot
signing. This has multiple issues:

- sbsigntools is practically unmaintained, sbvarsign is completely
broken with the latest gnu-efi when built without -fshort-wchar and
upstream has completely ignored my bug report about this.
- sbsigntools only supports openssl engines and not the new providers
API.
- sbsigntools doesn't allow us to cache hardware token pins in the
kernel keyring like we do nowadays when we sign stuff ourselves in
systemd-repart or systemd-measure

There are alternative tools like sbctl and pesign but these do not
support caching hardware token pins in the kernel keyring either.

To get around the issues with sbsigntools, let's introduce our own
tool systemd-sbsign to do secure boot signing. This allows us to
take advantage of our own openssl infra so that hardware token pins
are cached in the kernel keyring as expected and we get openssl
provider support as well.

12 months agoUpdate NEWS for recent PRs
Luca Boccassi [Wed, 6 Nov 2024 15:50:59 +0000 (15:50 +0000)] 
Update NEWS for recent PRs

12 months agonetworkd: add possibility to specify MulticastIGMPVersion
Michele Dionisio [Tue, 5 Nov 2024 10:53:30 +0000 (11:53 +0100)] 
networkd: add possibility to specify MulticastIGMPVersion

12 months agoGrammar and formatting for DeviceTree docs (#35050)
Luca Boccassi [Wed, 6 Nov 2024 15:13:18 +0000 (15:13 +0000)] 
Grammar and formatting for DeviceTree docs (#35050)

12 months agoUpdate translations 35048/head
Luca Boccassi [Wed, 6 Nov 2024 11:13:45 +0000 (11:13 +0000)] 
Update translations

ninja -C build systemd-pot
ninja -C build systemd-update-po

12 months agoUpdate hwdb
Luca Boccassi [Wed, 6 Nov 2024 11:12:28 +0000 (11:12 +0000)] 
Update hwdb

ninja -C build update-hwdb

12 months agoukify: Add --signing-provider= option 35021/head
Daan De Meyer [Tue, 5 Nov 2024 21:24:17 +0000 (22:24 +0100)] 
ukify: Add --signing-provider= option

12 months agopo: Translated using Weblate (French)
Léane GRASSER [Wed, 6 Nov 2024 12:46:55 +0000 (13:46 +0100)] 
po: Translated using Weblate (French)

Currently translated at 100.0% (253 of 253 strings)

Co-authored-by: Léane GRASSER <leane.grasser@proton.me>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/fr/
Translation: systemd/main

12 months agodocs/TPM2_PCR_MEASUREMENTS: drop quotes from around section titles 35050/head
Zbigniew Jędrzejewski-Szmek [Wed, 6 Nov 2024 13:56:54 +0000 (14:56 +0100)] 
docs/TPM2_PCR_MEASUREMENTS: drop quotes from around section titles

The section headers used quotes as if the strings were some constants. But
AFAICT, those are just normal plain-text titles. Also lowercase them, because
this is almost like a table and it's easier to read without capitalization.

12 months agotree-wide: use Device*T*ree spelling
Zbigniew Jędrzejewski-Szmek [Wed, 6 Nov 2024 13:45:43 +0000 (14:45 +0100)] 
tree-wide: use Device*T*ree spelling

We used both, in fact "Devicetree" was more common. But we have a general rule
that we capitalize all words in names and also we have a DeviceTree=
configuration setting, which we cannot change. If we use two different
spelllings, this will make it harder for people to use the correct one in
config files. So use the "DeviceTree" spelling everywhere.

12 months agointroduce report_errno_and_exit() helper (#35028)
Luca Boccassi [Wed, 6 Nov 2024 13:51:10 +0000 (13:51 +0000)] 
introduce report_errno_and_exit() helper (#35028)

This is a follow for https://github.com/systemd/systemd/pull/34853. In
particular, this comment
https://github.com/systemd/systemd/pull/34853#discussion_r1825837705.

12 months agocore/manager: silence false-positive warning by coverity
Yu Watanabe [Wed, 6 Nov 2024 10:57:39 +0000 (19:57 +0900)] 
core/manager: silence false-positive warning by coverity

Follow-up for 406f1775017a5631bc91a1f53ac5e50f4fbfac0c.

Closes CID#1564897.

12 months agomachine: introduce io.systemd.Machine.Open method (#34867)
Luca Boccassi [Wed, 6 Nov 2024 13:45:04 +0000 (13:45 +0000)] 
machine: introduce io.systemd.Machine.Open method (#34867)

This PR introduces io.systemd.Machine.Open method which combines three
DBus alternatives:
- OpenMachinePTY
- OpenMachineLogin
- OpenMachineShell

The PR contains basic tests.

12 months agopid1: stop refusing to boot with cgroup v1
Zbigniew Jędrzejewski-Szmek [Sat, 2 Nov 2024 16:07:22 +0000 (17:07 +0100)] 
pid1: stop refusing to boot with cgroup v1

Since v256 we completely fail to boot if v1 is configured. Fedora 41 was just
released with v256.7 and this is probably the first major exposure of users to
this code. It turns out not work very well. Fedora switched to v2 as default in
F31 (2019) and at that time some people added configuration to use v1 either
because of Docker or for other reasons. But it's been long enough ago that
people don't remember this and are now very unhappy when the system refuses to
boot after an upgrade.

Refusing to boot is also unnecessarilly punishing to users. For machines that
are used remotely, this could mean somebody needs to physically access the
machine. For other users, the machine might be the only way to access the net
and help, and people might not know how to set kernel parameters without some
docs. And because this is in systemd, after an upgrade all boot choices are
affected, and it's not possible to e.g. select an older kernel for boot. And
crashing the machine doesn't really serve our goal either: we were giving a
hint how to continue using v1 and nothing else.

If the new override is configured, warn and immediately boot to v1.
If v1 is configured w/o the override, warn and wait 30 s and boot to v2.
Also give a hint how to switch to v2.

https://bugzilla.redhat.com/show_bug.cgi?id=2323323
https://bugzilla.redhat.com/show_bug.cgi?id=2323345
https://bugzilla.redhat.com/show_bug.cgi?id=2322467
https://www.reddit.com/r/Fedora/comments/1gfcyw9/refusing_to_run_under_cgroup_01_sy_specified_on/

The advice is to set systemd.unified_cgroup_hierarchy=1 (instead of removing
systemd.unified_cgroup_hierarchy=0). I think this is easier to convey. Users
who are understand what is going on can just remove the option instead.

The caching is dropped in cg_is_legacy_wanted(). It turns out that the
order in which those functions are called during early setup is very fragile.
If cg_is_legacy_wanted() is called before we have set up the v2 hierarchy,
we incorrectly cache a true answer. The function is called just a handful
of times at most, so we don't really need to cache the response.

12 months agoman/systemd-stub: rework the description of sections
Zbigniew Jędrzejewski-Szmek [Wed, 6 Nov 2024 13:40:21 +0000 (14:40 +0100)] 
man/systemd-stub: rework the description of sections

The text added for .dtbauto/.hwids was very hard to grok. This rewords it to be
proper English. No semantic changes are intended.

When updating this, I noticed that the interaction of multi-profile UKIs and
dtb autoselection is very unclear, a FIXME is added.

12 months agoukify: Add support for systemd-sbsign
Daan De Meyer [Tue, 5 Nov 2024 12:44:18 +0000 (13:44 +0100)] 
ukify: Add support for systemd-sbsign

12 months agosbsign: Add validate-key verb
Daan De Meyer [Tue, 5 Nov 2024 12:43:02 +0000 (13:43 +0100)] 
sbsign: Add validate-key verb

This verb checks that we can load the specified private key.

12 months agoIntroduce systemd-sbsign to do secure boot signing
Daan De Meyer [Mon, 4 Nov 2024 23:36:32 +0000 (00:36 +0100)] 
Introduce systemd-sbsign to do secure boot signing

Currently in mkosi and ukify we use sbsigntools to do secure boot
signing. This has multiple issues:

- sbsigntools is practically unmaintained, sbvarsign is completely
broken with the latest gnu-efi when built without -fshort-wchar and
upstream has completely ignored my bug report about this.
- sbsigntools only supports openssl engines and not the new providers
API.
- sbsigntools doesn't allow us to cache hardware token pins in the
kernel keyring like we do nowadays when we sign stuff ourselves in
systemd-repart or systemd-measure

There are alternative tools like sbctl and pesign but these do not
support caching hardware token pins in the kernel keyring either.

To get around the issues with sbsigntools, let's introduce our own
tool systemd-sbsign to do secure boot signing. This allows us to
take advantage of our own openssl infra so that hardware token pins
are cached in the kernel keyring as expected and we get openssl
provider support as well.

12 months agomachine: tests for io.systemd.Machine.Open 34867/head
Ivan Kruglov [Wed, 23 Oct 2024 14:02:26 +0000 (16:02 +0200)] 
machine: tests for io.systemd.Machine.Open

12 months agomachine: introduce io.systemd.Machine.Open method
Ivan Kruglov [Wed, 23 Oct 2024 09:53:22 +0000 (11:53 +0200)] 
machine: introduce io.systemd.Machine.Open method

12 months agojson: introduce json_dispatch_strv_environment()
Ivan Kruglov [Fri, 1 Nov 2024 11:05:43 +0000 (12:05 +0100)] 
json: introduce json_dispatch_strv_environment()

I just moved json_dispatch_environment() from src/shared/user-record.c
under name 'json_dispatch_strv_environment()' to shared json code.

12 months agomachine: machine_default_shell_path() & machine_default_shell_args() helper functions
Ivan Kruglov [Tue, 22 Oct 2024 13:15:54 +0000 (15:15 +0200)] 
machine: machine_default_shell_path() & machine_default_shell_args() helper functions

12 months agomachine: introduce machine_start_getty() and machine_start_shell() helpers
Ivan Kruglov [Tue, 22 Oct 2024 11:38:06 +0000 (13:38 +0200)] 
machine: introduce machine_start_getty() and machine_start_shell() helpers

12 months agouse report_errno_and_exit() in src/core/exec-invoke.c 35028/head
Ivan Kruglov [Wed, 6 Nov 2024 10:16:58 +0000 (11:16 +0100)] 
use report_errno_and_exit() in src/core/exec-invoke.c

12 months agouse report_errno_and_exit() in src/shared/elf-util.c
Ivan Kruglov [Wed, 6 Nov 2024 10:14:01 +0000 (11:14 +0100)] 
use report_errno_and_exit() in src/shared/elf-util.c

12 months agouse report_errno_and_exit() in src/shared/dissect-image.c
Ivan Kruglov [Wed, 6 Nov 2024 10:13:39 +0000 (11:13 +0100)] 
use report_errno_and_exit() in src/shared/dissect-image.c

12 months agouse report_errno_and_exit() in src/shared/mount-util.c
Ivan Kruglov [Wed, 6 Nov 2024 10:13:16 +0000 (11:13 +0100)] 
use report_errno_and_exit() in src/shared/mount-util.c

12 months agouse report_errno_and_exit() in src/shutdown/umount.c
Ivan Kruglov [Wed, 6 Nov 2024 10:12:28 +0000 (11:12 +0100)] 
use report_errno_and_exit() in src/shutdown/umount.c

12 months agoprocess-util: introduce report_errno_and_exit() as part of src/basic/process-util...
Ivan Kruglov [Wed, 6 Nov 2024 10:11:03 +0000 (11:11 +0100)] 
process-util: introduce report_errno_and_exit() as part of src/basic/process-util.{h,c}

12 months agoman/varlink: fix typo
Yu Watanabe [Wed, 6 Nov 2024 10:06:13 +0000 (19:06 +0900)] 
man/varlink: fix typo

Follow-up for 4f5fabe7a39f046e0456eba07472df061e85c94e.

12 months agoman/udev: fix typo
Yu Watanabe [Wed, 6 Nov 2024 10:05:12 +0000 (19:05 +0900)] 
man/udev: fix typo

Follow-up for df8f9b88bd41320653fe1c51ea515a2d03a349df.

12 months agoman/systemd-measure: add forgotten "="
Zbigniew Jędrzejewski-Szmek [Wed, 6 Nov 2024 09:17:56 +0000 (10:17 +0100)] 
man/systemd-measure: add forgotten "="

Both syntaxes work, but let's use one syntax for consistency.

Fixup for 0641ce809a27cc1bc358924c26770f19d1213ec1.

12 months agoman/systemd-measure: update to new ukify syntax, non-root operation
Zbigniew Jędrzejewski-Szmek [Tue, 5 Nov 2024 17:03:03 +0000 (18:03 +0100)] 
man/systemd-measure: update to new ukify syntax, non-root operation

It's been a while, but systemd-measure doesn't need root, and
ukify has a more modern syntax.

12 months agonetwork: reconfigure interface more gracefully (#35035)
Yu Watanabe [Wed, 6 Nov 2024 08:57:56 +0000 (17:57 +0900)] 
network: reconfigure interface more gracefully (#35035)

split-out of #34989.

12 months agoUKI: Introduce `.dtbauto` sections (#34855)
Lennart Poettering [Wed, 6 Nov 2024 08:29:04 +0000 (09:29 +0100)] 
UKI: Introduce `.dtbauto` sections (#34855)

Split out from #34158

12 months agonamespace-util: make idmapping not supported if syscalls return EPERM
Andres Beltran [Tue, 5 Nov 2024 19:52:35 +0000 (19:52 +0000)] 
namespace-util: make idmapping not supported if syscalls return EPERM

12 months agoVarious man page updates (#35032)
Lennart Poettering [Wed, 6 Nov 2024 08:26:57 +0000 (09:26 +0100)] 
Various man page updates (#35032)

Fixes: #34996
Fixes: #15032
Fixes: #32751
Fixes: #33130
Fixes: #34735
Fixes: #34840
Fixes: #34949
12 months agomount-util: introduce path_is_network_fs_harder() and use it in networkd (#35040)
Zbigniew Jędrzejewski-Szmek [Wed, 6 Nov 2024 07:39:24 +0000 (08:39 +0100)] 
mount-util: introduce path_is_network_fs_harder() and use it in networkd (#35040)

Closes #32426.

12 months agoman: convert multiple left-over "See Also" sections to <simplelist> 35032/head
Lennart Poettering [Tue, 5 Nov 2024 13:47:32 +0000 (14:47 +0100)] 
man: convert multiple left-over "See Also" sections to <simplelist>

These were forgotten during the initial conversion, probably because
most of them consisted only of a single entry.

Fix that.

12 months agoman: link up D-Bus API docs from daemon man pages
Lennart Poettering [Tue, 5 Nov 2024 13:20:01 +0000 (14:20 +0100)] 
man: link up D-Bus API docs from daemon man pages

Let's systematically make sure that we link up the D-Bus interfaces from
the daemon man pages once in prose and once in short form at the bottom
("See Also"), for all daemons.

Also, add reverse links at the bottom of the D-Bus API docs.

Fixes: #34996
12 months agoman: point people from sd-bus man page to busctl
Lennart Poettering [Tue, 5 Nov 2024 13:08:16 +0000 (14:08 +0100)] 
man: point people from sd-bus man page to busctl

12 months agoman: add brief entrypoint man page for sd-varlink
Lennart Poettering [Tue, 5 Nov 2024 13:07:31 +0000 (14:07 +0100)] 
man: add brief entrypoint man page for sd-varlink

We have this in a similar fashion for the other APIs libsystemd
provides. Add the same for sd-varlink. There isn't too much on it for
now, but at least it's a start.

Also link it up everywhere.

12 months agoman: tone down claims on processes having exited already in ExecStop=
Lennart Poettering [Tue, 5 Nov 2024 12:51:00 +0000 (13:51 +0100)] 
man: tone down claims on processes having exited already in ExecStop=

Processes can easily survive the first kill operation we execute, hence
we shouldn't make strong claims about them having exited already. Let's
just say "likely" hence.

Fixes: #15032
12 months agoman: document that .path units don't care for hidden files
Lennart Poettering [Tue, 5 Nov 2024 12:36:19 +0000 (13:36 +0100)] 
man: document that .path units don't care for hidden files

Fixes: #32751
12 months agoman: document that PrivateTmp= is unaffected by ProtectSystem=strict
Lennart Poettering [Tue, 5 Nov 2024 12:33:53 +0000 (13:33 +0100)] 
man: document that PrivateTmp= is unaffected by ProtectSystem=strict

Fixes: #33130
12 months agoman: highlight the privilege issues around the LogControl1 more
Lennart Poettering [Tue, 5 Nov 2024 12:27:23 +0000 (13:27 +0100)] 
man: highlight the privilege issues around the LogControl1 more

Let's emphasize the privilege thing with a <caution> section.

Let's also point out that other D-Bus libraries are less restrictive
than sd-bus by default regarding permission access.

Fixes: #34735
12 months agoman: Document stub behaviour for .hwids and .dtbauto sections 34855/head
anonymix007 [Tue, 22 Oct 2024 12:07:15 +0000 (15:07 +0300)] 
man: Document stub behaviour for .hwids and .dtbauto sections

12 months agostub: Handle .dtbauto sections
anonymix007 [Tue, 22 Oct 2024 11:41:55 +0000 (14:41 +0300)] 
stub: Handle .dtbauto sections

12 months agomeasure: Introduce .dtbauto support
anonymix007 [Tue, 22 Oct 2024 11:40:57 +0000 (14:40 +0300)] 
measure: Introduce .dtbauto support

12 months agouki: add new .dtbauto PE section type
anonymix007 [Tue, 22 Oct 2024 11:38:00 +0000 (14:38 +0300)] 
uki: add new .dtbauto PE section type

.dtbauto section contains DT blobs, just like .dtb, the difference is
that multiple .dtbauto sections are allowed to be in a UKI and only one
is selected automatically

Temporarily drop an assert_cc() check in systemd-measure to make it compilable before the next commit

12 months agomeasure: introduce support for a .hwids section
anonymix007 [Wed, 4 Sep 2024 11:40:18 +0000 (14:40 +0300)] 
measure: introduce support for a .hwids section

12 months agoboot: Add .dtbauto section matching in PE section discovery against HWIDs and FW...
anonymix007 [Wed, 4 Sep 2024 09:49:29 +0000 (12:49 +0300)] 
boot: Add .dtbauto section matching in PE section discovery against HWIDs and FW-provided DT

12 months agoman: don't claim SELinuxContext= only worked in the system service manager
Lennart Poettering [Tue, 5 Nov 2024 12:15:36 +0000 (13:15 +0100)] 
man: don't claim SELinuxContext= only worked in the system service manager

Fixes: #34840
12 months agoman: document the timeout applied to /usr/lib/systemd/system-shutdown/ drop-in binaries
Lennart Poettering [Tue, 5 Nov 2024 12:12:20 +0000 (13:12 +0100)] 
man: document the timeout applied to /usr/lib/systemd/system-shutdown/ drop-in binaries

Fixes: #34949
12 months agotest: delete /swapfile after swapoff
Luca Boccassi [Tue, 5 Nov 2024 18:15:36 +0000 (18:15 +0000)] 
test: delete /swapfile after swapoff

[   23.608342] TEST-55-OOMD.sh[689]: + btrfs filesystem mkswapfile -s 64M /swapfile
[   23.651930] TEST-55-OOMD.sh[704]: ERROR: cannot create new swapfile: File exists

12 months agonetwork: handle ENODATA better with DNR
Ronan Pigott [Mon, 4 Nov 2024 23:12:00 +0000 (16:12 -0700)] 
network: handle ENODATA better with DNR

It is normal for DHCP leases not to have DNR options. We need to be less
verbose and more forgiving in these cases. Also, if either DHCP does not
have DNR options, make sure to still consider any DHCPv6/RA options.

Fixes: c7c9e3c7c016 (network: adjust log message about DNR)
12 months agonetwork: use path_is_network_fs_harder() 35040/head
Yu Watanabe [Tue, 5 Nov 2024 19:42:16 +0000 (04:42 +0900)] 
network: use path_is_network_fs_harder()

Closes #32426.

12 months agomount-util: introduce path_is_network_fs_harder()
Yu Watanabe [Tue, 5 Nov 2024 19:37:55 +0000 (04:37 +0900)] 
mount-util: introduce path_is_network_fs_harder()

It also detects e.g. glusterfs or mounts with "_netdev" option.

12 months agotree-wide: time-out → timeout
Zbigniew Jędrzejewski-Szmek [Tue, 5 Nov 2024 17:47:54 +0000 (18:47 +0100)] 
tree-wide: time-out → timeout

For justification, see 3f9a0a522f2029e9295ea5e9984259022be88413.

12 months agoboot: Add HWID calculation from SMBIOS strings and matching against a built-in list
anonymix007 [Sat, 31 Aug 2024 18:49:10 +0000 (21:49 +0300)] 
boot: Add HWID calculation from SMBIOS strings and matching against a built-in list

12 months agoboot: Add firmware_devicetree_exists()
anonymix007 [Tue, 5 Nov 2024 19:17:21 +0000 (22:17 +0300)] 
boot: Add firmware_devicetree_exists()

12 months agoboot: add matching against FW-provided Devicetree blob
Diogo Ivo [Wed, 4 Sep 2024 10:00:05 +0000 (13:00 +0300)] 
boot: add matching against FW-provided Devicetree blob

Add support for matching the DT contained in a .dtb section of the
UKI image against the FW provided FDT or arbitrary compatible.

12 months agoopenssl-util: Set default UI method instead of setting engine method
Daan De Meyer [Tue, 5 Nov 2024 13:48:59 +0000 (14:48 +0100)] 
openssl-util: Set default UI method instead of setting engine method

While for engines we have ENGINE_ctrl() to set the UI method for the
second PIN prompt, for openssl providers we don't have such a feature
which means we get the default openssl UI for the second pin prompt.

Instead, let's set the default UI method which does get used for the
second pin prompt by the pkcs11 provider.

12 months agoAdd PrivatePIDs= (continued) (#34940)
Luca Boccassi [Tue, 5 Nov 2024 18:42:28 +0000 (18:42 +0000)] 
Add PrivatePIDs= (continued) (#34940)

12 months agonetwork: introduce LINK_RECONFIGURE_CLEANLY flag 35035/head
Yu Watanabe [Tue, 5 Nov 2024 02:41:31 +0000 (11:41 +0900)] 
network: introduce LINK_RECONFIGURE_CLEANLY flag

And use it when explicit reconfiguration is requested by Reconfigure() DBus method
or networkd certainly detects that connected network is changed.
Otherwise do not use the flag especially when we come back from sleep mode.

12 months agonetwork: keep dynamic configurations as possible as we can on reconfigure
Yu Watanabe [Tue, 5 Nov 2024 02:39:31 +0000 (11:39 +0900)] 
network: keep dynamic configurations as possible as we can on reconfigure

E.g. when a .network file is updated, but DHCP setting is unchanged, it
is not necessary to drop acquired DHCP lease.
So, let's not stop DHCP client and friends in link_reconfigure_impl(),
but stop them later when we know they are not necessary anymore.

Still DHCP clients and friends are stopped and leases are dropped when
the explicit reconfiguration is requested

12 months agonetwork: merge link_foreignize_config() and link_drop_foreign_config()
Yu Watanabe [Tue, 5 Nov 2024 02:32:33 +0000 (11:32 +0900)] 
network: merge link_foreignize_config() and link_drop_foreign_config()

When a reconfiguration of an interface is triggered, previously we
call link_foreignize_config(), which sets all static configurations as
foreign, then later call link_drop_foreign_config(), which drops
unnecessary foreign configurations.

This commit merges these two steps into one, link_drop_unmanaged_config(),
which drops unnecessary static and foreign configurations.

Also, this renames link_drop_managed_configs() to
link_drop_static_config(), as it only drops static configurations.
Note that dynamically aquired configurations are dropped by
link_stop_engines().

12 months agonetwork: several cleanups for link_reconfigure()
Yu Watanabe [Mon, 4 Nov 2024 19:04:33 +0000 (04:04 +0900)] 
network: several cleanups for link_reconfigure()

Effectively no functional changes, just refactoring and preparation for
later changes.

- convert boolean flag 'force' to LinkReconfigurationFlag enum,
- merge link_reconfigure() and reconfigure_handler_on_bus_method_reload() as
  link_reconfigure_full(),
- Rename ReconfigureData -> LinkReconfigurationData,
- make Reconfigure() DBus message wait for reconfiguration being
  started before sending reply.

12 months agonetwork: split out link_enter_unmanaged() from link_reconfigure_impl()
Yu Watanabe [Sun, 3 Nov 2024 01:18:27 +0000 (10:18 +0900)] 
network: split out link_enter_unmanaged() from link_reconfigure_impl()

No functional change, just refactoring.

12 months agoTranslations update from Fedora Weblate (#35031)
Yu Watanabe [Tue, 5 Nov 2024 16:52:36 +0000 (01:52 +0900)] 
Translations update from Fedora Weblate (#35031)

12 months agopo: Translated using Weblate (German) 35031/head
Weblate Translation Memory [Tue, 5 Nov 2024 13:50:15 +0000 (14:50 +0100)] 
po: Translated using Weblate (German)

Currently translated at 90.9% (230 of 253 strings)

po: Translated using Weblate (German)

Currently translated at 89.3% (226 of 253 strings)

po: Translated using Weblate (German)

Currently translated at 88.9% (225 of 253 strings)

po: Translated using Weblate (German)

Currently translated at 88.1% (223 of 253 strings)

Co-authored-by: Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/de/
Translation: systemd/main

12 months agopo: Translated using Weblate (German)
Ettore Atalan [Tue, 5 Nov 2024 13:50:15 +0000 (14:50 +0100)] 
po: Translated using Weblate (German)

Currently translated at 90.9% (230 of 253 strings)

po: Translated using Weblate (German)

Currently translated at 89.3% (226 of 253 strings)

po: Translated using Weblate (German)

Currently translated at 88.9% (225 of 253 strings)

po: Translated using Weblate (German)

Currently translated at 88.1% (223 of 253 strings)

Co-authored-by: Ettore Atalan <atalanttore@googlemail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/de/
Translation: systemd/main

12 months agorun: handle gracefully if we can't find binary client-side due to perms
Lennart Poettering [Tue, 5 Nov 2024 10:54:14 +0000 (11:54 +0100)] 
run: handle gracefully if we can't find binary client-side due to perms

Fixes: #35022
12 months agocore: Introduce PrivatePIDs= 34940/head
Daan De Meyer [Thu, 29 Aug 2024 15:10:46 +0000 (17:10 +0200)] 
core: Introduce PrivatePIDs=

This new setting allows unsharing the pid namespace in a unit. Because
you have to fork to get a process into a pid namespace, we fork in
systemd-executor to get into the new pid namespace. The parent then
sends the pid of the child process back to the manager and exits while
the child process continues on with the rest of exec_invoke() and then
executes the actual payload.

Communicating the child pid is done via a new pidref socket pair that is
set up on manager startup.

We unshare the PID namespace right before the mount namespace so we
mount procfs correctly. Note PrivatePIDs=yes always implies MountAPIVFS=yes
to mount procfs.

When running unprivileged in a user session, user namespace is set up first
to allow for PID namespace to be unshared. However, when running in
privileged mode, we unshare the user namespace last to ensure the user
namespace does not own the PID namespace and cannot break out of the sandbox.

Note we disallow Type=forking services from using PrivatePIDs=yes since the
init proess inside the PID namespace must not exit for other processes in
the namespace to exist.

Note Daan De Meyer did the original work for this commit with Ryan Wilson
addressing follow-ups.

Co-authored-by: Daan De Meyer <daan.j.demeyer@gmail.com>
12 months agopcrlock: Move pe_hash() and uki_hash() to pe-binary.h
Daan De Meyer [Sun, 3 Nov 2024 17:48:53 +0000 (18:48 +0100)] 
pcrlock: Move pe_hash() and uki_hash() to pe-binary.h

Let's move these to shared so we can reuse pe_hash() in the upcoming
systemd-sbsign.

12 months agomkosi: Add ruff and mypy to tools tree packages
Daan De Meyer [Tue, 5 Nov 2024 13:14:03 +0000 (14:14 +0100)] 
mkosi: Add ruff and mypy to tools tree packages

12 months agofundamental: Add HWID calculation
anonymix007 [Thu, 10 Oct 2024 15:35:02 +0000 (18:35 +0300)] 
fundamental: Add HWID calculation

12 months agoboot: Add xnew0
anonymix007 [Wed, 16 Oct 2024 14:59:08 +0000 (17:59 +0300)] 
boot: Add xnew0

Same as xnew but initialized with zeros

12 months agoresolved: log error messages for openssl/gnutls context creation
Zbigniew Jędrzejewski-Szmek [Sun, 3 Nov 2024 11:58:12 +0000 (12:58 +0100)] 
resolved: log error messages for openssl/gnutls context creation

In https://bugzilla.redhat.com/show_bug.cgi?id=2322937 we're getting
an error message:
Okt 29 22:21:03 fedora systemd-resolved[29311]: Could not create manager: Cannot allocate memory
I expect that this actually comes from dnstls_manager_init(), the
openssl version. But without real logs it's hard to know for sure.

Use EIO instead of ENOMEM, because the problem is unlikely to be actually
related to memory.

12 months agonetwork: limit the total number of Encrypted DNS options processed
Ronan Pigott [Tue, 5 Nov 2024 03:45:27 +0000 (20:45 -0700)] 
network: limit the total number of Encrypted DNS options processed

We need a sensible limit on the number of Encrypted DNS options allowed
so that the set of resolvers per link does not grow without bound.

Fixes: 0c90d1d2f243 ("ndisc: Parse RFC9463 encrypted DNS (DNR) option")
12 months agosd-daemon: some tweaks (#35011)
Luca Boccassi [Tue, 5 Nov 2024 00:56:28 +0000 (00:56 +0000)] 
sd-daemon: some tweaks (#35011)

12 months agoci: add coverage for builds without sd-boot (#35016)
Luca Boccassi [Mon, 4 Nov 2024 21:46:19 +0000 (21:46 +0000)] 
ci: add coverage for builds without sd-boot (#35016)

This should catch compilation issues such as:
https://github.com/systemd/systemd/pull/35014

12 months agoci: add coverage for builds without sd-boot 35016/head
Luca Boccassi [Mon, 4 Nov 2024 19:43:02 +0000 (19:43 +0000)] 
ci: add coverage for builds without sd-boot

This should catch compilation issues such as:
https://github.com/systemd/systemd/pull/35014

12 months agotest: set nullglob to avoid failure when building without sd-boot
Luca Boccassi [Mon, 4 Nov 2024 20:26:34 +0000 (20:26 +0000)] 
test: set nullglob to avoid failure when building without sd-boot

2024-11-04T20:13:17.3258095Z + for loader in build/src/boot/efi/*{.efi,.efi.stub}
2024-11-04T20:13:17.3258275Z ++ sbverify --list 'build/src/boot/efi/*.efi'
2024-11-04T20:13:17.3258525Z + [[ Error reading file build/src/boot/efi/*.efi: No such file or directory
2024-11-04T20:13:17.3258952Z Can't open image build/src/boot/efi/*.efi != \N\o\ \s\i\g\n\a\t\u\r\e\ \t\a\b\l\e\ \p\r\e\s\e\n\t ]]

12 months agotest: fix tool name in comment
Luca Boccassi [Mon, 4 Nov 2024 20:22:01 +0000 (20:22 +0000)] 
test: fix tool name in comment

12 months agonetwork: sevearal random trivial cleanups (#34994)
Yu Watanabe [Mon, 4 Nov 2024 19:16:44 +0000 (04:16 +0900)] 
network: sevearal random trivial cleanups (#34994)

split-out of #34989.

12 months agotmpfiles: Implement L? to only create symlinks if source exists
Daan De Meyer [Mon, 4 Nov 2024 11:21:21 +0000 (12:21 +0100)] 
tmpfiles: Implement L? to only create symlinks if source exists

This allows a single tmpfiles snippet with lines to symlink directories
from /usr/share/factory to be shared across many different configurations
while making sure symlinks only get created if the source actually exists.

12 months agonetwork/dhcp4: keep DHCP address and routes on stop even when SendDecline=yes 34994/head
Yu Watanabe [Fri, 1 Nov 2024 14:47:59 +0000 (23:47 +0900)] 
network/dhcp4: keep DHCP address and routes on stop even when SendDecline=yes

KeepConfiguration=dhcp or dhcp-on-stop already violate RFC. It is not
necessary to honor the RFC about sending decline message on stop.

12 months agonetwork: expose log_route_debug() and log_address_debug()
Yu Watanabe [Sat, 2 Nov 2024 09:32:02 +0000 (18:32 +0900)] 
network: expose log_route_debug() and log_address_debug()

They will be used in another file in a later commit.

12 months agonetwork: add more debugging logs
Yu Watanabe [Sat, 2 Nov 2024 09:26:43 +0000 (18:26 +0900)] 
network: add more debugging logs

This also fixes the position of the logging "Enumeration completed.",
and downgrade its log level.

12 months agonetwork: check if interface is initialized after enumeration completed
Yu Watanabe [Fri, 1 Nov 2024 21:31:25 +0000 (06:31 +0900)] 
network: check if interface is initialized after enumeration completed

We enumerate interfaces at first, then enumerate other configurations
like addresses and so on. If we are running on a container, previously
we started to configure the enumerated interfaces before enumerating other
configurations.
Let's configure interfaces after all configurations are enumerated.