]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
9 months agoman/udevadm: rebreak and reindent lines 36267/head
Yu Watanabe [Wed, 5 Feb 2025 00:01:28 +0000 (09:01 +0900)] 
man/udevadm: rebreak and reindent lines

9 months agoman/udevadm: list --version as a common option
Yu Watanabe [Wed, 5 Feb 2025 00:00:20 +0000 (09:00 +0900)] 
man/udevadm: list --version as a common option

Then, drop --version and --help from each sub commands.

9 months agostub: Mention that VirtualSize should be <= SizeOfRawData
Daan De Meyer [Tue, 4 Feb 2025 13:52:02 +0000 (14:52 +0100)] 
stub: Mention that VirtualSize should be <= SizeOfRawData

9 months agoTwo test readme improvements (#36265)
Yu Watanabe [Wed, 5 Feb 2025 01:08:00 +0000 (10:08 +0900)] 
Two test readme improvements (#36265)

9 months agotest: Move external packages section down and reword a little 36265/head
Daan De Meyer [Tue, 4 Feb 2025 19:46:11 +0000 (20:46 +0100)] 
test: Move external packages section down and reword a little

This is advanced level stuff that regular contributors don't care
about in the slightest, so move it further down. Also reword the
section a little while we're at it.

9 months agotest: Move NO_BUILD instructions to a separate section
Daan De Meyer [Tue, 4 Feb 2025 19:24:17 +0000 (20:24 +0100)] 
test: Move NO_BUILD instructions to a separate section

This isn't relevant for regular development, so let's move it to a
separate section.

9 months agotest: Drop -Dremote=enabled instructions from readme
Daan De Meyer [Tue, 4 Feb 2025 19:21:36 +0000 (20:21 +0100)] 
test: Drop -Dremote=enabled instructions from readme

The test commands now use mkosi sandbox which always makes sure the
required dependencies for systemd-journal-remote are enabled so no
need to reconfigure meson explicitly anymore.

9 months agomachine: introduce io.systemd.MachineImage.CleanPool (#35928)
Daan De Meyer [Tue, 4 Feb 2025 17:43:23 +0000 (18:43 +0100)] 
machine: introduce io.systemd.MachineImage.CleanPool (#35928)

This PR introduces io.systemd.MachineImage.CleanPool method which is
alternative to DBus's CleanPool.

9 months agoukify/measure: Revert changes to use SizeOfImage from Linux PE binary
Daan De Meyer [Tue, 4 Feb 2025 08:24:26 +0000 (09:24 +0100)] 
ukify/measure: Revert changes to use SizeOfImage from Linux PE binary

With 19812661f1f65ebe777d1626b5abf6475faababc, we make sure at runtime
in the stub itself that SizeOfImage from the Linux EFISTUB PE binary is
taken into account, so there's no need to take this into account in ukify
itself. By reverting the ukify change, we again ensure that Misc_VirtualSize
reflects the actual size of the Linux EFISTUB PE binary in the .linux section
which lots of tooling depends on. It also makes sure we don't measure a bunch
of extra zeroes in the stub which should fix systemd-pcrlock measurements as
well.

This effectively reverts 2188c759f97e40b97ebe3e94e82239f36b525b10 and
0005411352f9bda0d9887c37b9e75a2bce6c1133.

Fixes #35851

9 months agomachine: tests for io.systemd.MachineImage.CleanPool 35928/head
Ivan Kruglov [Wed, 8 Jan 2025 15:02:26 +0000 (16:02 +0100)] 
machine: tests for io.systemd.MachineImage.CleanPool

9 months agomachine: introduce io.systemd.MachineImage.CleanPool
Ivan Kruglov [Wed, 8 Jan 2025 12:56:14 +0000 (13:56 +0100)] 
machine: introduce io.systemd.MachineImage.CleanPool

9 months agomachine: use image_clean_pool_operation() in dbus
Ivan Kruglov [Wed, 8 Jan 2025 11:41:45 +0000 (12:41 +0100)] 
machine: use image_clean_pool_operation() in dbus

9 months agomachine: image_clean_pool_operation()
Ivan Kruglov [Tue, 7 Jan 2025 15:30:17 +0000 (16:30 +0100)] 
machine: image_clean_pool_operation()

9 months agomachine: rename machine_copy_from_to() -> machine_copy_from_to_operation()
Ivan Kruglov [Wed, 8 Jan 2025 12:48:19 +0000 (13:48 +0100)] 
machine: rename machine_copy_from_to() -> machine_copy_from_to_operation()

This is done to make it clear that machine_copy_from_to() use and
returns an Operation object.

9 months agosysupdate: Update example mode to 644 instead of 444
Daan De Meyer [Tue, 4 Feb 2025 10:42:42 +0000 (11:42 +0100)] 
sysupdate: Update example mode to 644 instead of 444

The UKI file has to be writable to be able to do boot counting in
the UEFI firmware which involves renaming the file by writing to
the file metadata which requires the file to be writable in the FAT
filesystem.

Fixes #36170

9 months agomeson: add install tag for systemctl
Vyacheslav Yurkov [Sun, 2 Feb 2025 09:13:38 +0000 (10:13 +0100)] 
meson: add install tag for systemctl

Signed-off-by: Vyacheslav Yurkov <uvv.mail@gmail.com>
9 months agodocs: Update CPE fields in package metadata spec (#36251)
Dimitri John Ledkov [Mon, 3 Feb 2025 22:14:56 +0000 (22:14 +0000)] 
docs: Update CPE fields in package metadata spec (#36251)

Update osCPE field example to use cpe 2.3 format, as is in active use by
AmazonLinux 2023 for example.

Add appCPE field example to document the upstream application CPE for
the applicable CVEs. Often distribution source package names are
different from the upstream CPE. For example adding/removing "lib"
prefix, or adding version stream "-3" suffix. This typically leads to
guessing or fuzzy matching. Adding appCPE in such cases can help to
disambiguate (or collate) correct application CPEs; especially beyond
the lifetime of osCPE support timeframes. This also will help a lot with
packaging multiple alternative source packages of the same software
(e.g. nginx-full nginx-core); different version streams (e.g.
openssl-1.1, openssl-3); or alternative builds of upstream software with
largely the same CVEs with multiple version streams (e.g.
openjdk-{22,17,11..}, corretto-{22,17,11..}, temurin-{22,17,11..}, etc).

9 months agopo: Translated using Weblate (Bulgarian)
Alexander Shopov [Mon, 3 Feb 2025 14:38:39 +0000 (15:38 +0100)] 
po: Translated using Weblate (Bulgarian)

Currently translated at 87.5% (225 of 257 strings)

Co-authored-by: Alexander Shopov <ash@kambanaria.org>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/bg/
Translation: systemd/main

9 months agohomectl: Fix empty checks
Daan De Meyer [Mon, 3 Feb 2025 15:17:00 +0000 (16:17 +0100)] 
homectl: Fix empty checks

9 months agoUpdate TODO
Daan De Meyer [Mon, 3 Feb 2025 16:09:21 +0000 (17:09 +0100)] 
Update TODO

9 months agoSymlink NVD CPE search 36251/head
Dimitri John Ledkov [Mon, 3 Feb 2025 12:00:24 +0000 (12:00 +0000)] 
Symlink NVD CPE search

9 months agodocs: Update CPE fields in package metadata spec
Dimitri John Ledkov [Mon, 3 Feb 2025 10:55:20 +0000 (10:55 +0000)] 
docs: Update CPE fields in package metadata spec

Update osCPE field example to use cpe 2.3 format, as is in active use by
AmazonLinux 2023 for example.

Add appCPE field example to document the upstream application CPE for the
applicable CVEs. Often distribution source package names are different from the
upstream CPE. For example adding/removing "lib" prefix, or adding version
stream "-3" suffix. This typically leads to guessing or fuzzy matching. Adding
appCPE in such cases can help to disambiguate (or collate) correct application
CPEs; especially beyond the lifetime of osCPE support timeframes.

9 months agouser-runtime-dir: Log the quota limit in the warning message on failure
Daan De Meyer [Mon, 3 Feb 2025 08:48:35 +0000 (09:48 +0100)] 
user-runtime-dir: Log the quota limit in the warning message on failure

9 months agoukify: Calculate section size more correctly (#36215)
Zbigniew Jędrzejewski-Szmek [Mon, 3 Feb 2025 09:17:37 +0000 (10:17 +0100)] 
ukify: Calculate section size more correctly (#36215)

We should only use Misc_VirtualSize if it's smaller than SizeOfRawData,
since in that case it'll be the non-aligned section size. Otherwise we
have to use SizeOfRawData to get the size on disk.

9 months agoMerge remote-tracking branch 'weblate/main' into HEAD
Yu Watanabe [Sun, 2 Feb 2025 07:21:10 +0000 (16:21 +0900)] 
Merge remote-tracking branch 'weblate/main' into HEAD

9 months agopo: Added translation using Weblate (Interlingua)
Emilio Sepulveda [Sun, 2 Feb 2025 05:37:08 +0000 (06:37 +0100)] 
po: Added translation using Weblate (Interlingua)

Co-authored-by: Emilio Sepulveda <emism.translations@gmail.com>
9 months agopo: sort languages
Yu Watanabe [Sun, 2 Feb 2025 06:44:10 +0000 (15:44 +0900)] 
po: sort languages

9 months agopo: Added translation using Weblate (Interlingua)
Emilio Sepulveda [Sun, 2 Feb 2025 05:37:08 +0000 (06:37 +0100)] 
po: Added translation using Weblate (Interlingua)

Co-authored-by: Emilio Sepulveda <emism.translations@gmail.com>
9 months agoman: systemd-repart: factory=reset typo
andhe [Sat, 1 Feb 2025 23:07:06 +0000 (00:07 +0100)] 
man: systemd-repart: factory=reset typo

9 months agobuild(deps): bump super-linter/super-linter from 7.1.0 to 7.2.1
dependabot[bot] [Sat, 1 Feb 2025 09:54:18 +0000 (09:54 +0000)] 
build(deps): bump super-linter/super-linter from 7.1.0 to 7.2.1

Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter) from 7.1.0 to 7.2.1.
- [Release notes](https://github.com/super-linter/super-linter/releases)
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md)
- [Commits](https://github.com/super-linter/super-linter/compare/b92721f792f381cedc002ecdbb9847a15ece5bb8...85f7611e0f7b53c8573cca84aa0ed4344f6f6a4d)

---
updated-dependencies:
- dependency-name: super-linter/super-linter
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
9 months agobuild(deps): bump softprops/action-gh-release from 2.1.0 to 2.2.1
dependabot[bot] [Sat, 1 Feb 2025 09:54:20 +0000 (09:54 +0000)] 
build(deps): bump softprops/action-gh-release from 2.1.0 to 2.2.1

Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.1.0 to 2.2.1.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/01570a1f39cb168c169c802c3bceb9e93fb10974...c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
9 months agobuild(deps): bump coverallsapp/github-action from 2.3.4 to 2.3.6
dependabot[bot] [Sat, 1 Feb 2025 09:54:27 +0000 (09:54 +0000)] 
build(deps): bump coverallsapp/github-action from 2.3.4 to 2.3.6

Bumps [coverallsapp/github-action](https://github.com/coverallsapp/github-action) from 2.3.4 to 2.3.6.
- [Release notes](https://github.com/coverallsapp/github-action/releases)
- [Commits](https://github.com/coverallsapp/github-action/compare/cfd0633edbd2411b532b808ba7a8b5e04f76d2c8...648a8eb78e6d50909eff900e4ec85cab4524a45b)

---
updated-dependencies:
- dependency-name: coverallsapp/github-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
9 months agokernel-install: install addons in 90-uki-copy.install if they are present
Luca Boccassi [Fri, 6 Dec 2024 23:46:12 +0000 (23:46 +0000)] 
kernel-install: install addons in 90-uki-copy.install if they are present

mkosi now has a kernel-install plugin to build addons, mkosi-addon.
If there are addons in <uki>.extra.d/ install them too to
the ESP.

9 months agoRevert "Reduce priority of "cleared HibernateLocation" message"
Mike Yuan [Thu, 30 Jan 2025 09:53:14 +0000 (10:53 +0100)] 
Revert "Reduce priority of "cleared HibernateLocation" message"

This reverts commit 9f575145ea27daca9bc3ac86d1c4f42273b4306a.

9 months agouserdb: fix typo
Yu Watanabe [Sat, 1 Feb 2025 05:09:03 +0000 (14:09 +0900)] 
userdb: fix typo

Follow-up for 7419291670dd4066594350cce585031f60bc4f0a.

9 months agouki: introduce support for a .efifw section
Ani Sinha [Fri, 8 Nov 2024 06:31:51 +0000 (12:01 +0530)] 
uki: introduce support for a .efifw section

UKIs can be used to bundle uefi firmwares that can be measured and
used on a confidential computing environment. There can be more than one
firmware blob bundle, each one for a specific platform. Also firmware images
can themselves be containers like IGVM files that can in turn bundle the
actual firmware blob. This change is specifically for uefi firmwares, not
IGVM container files.

This change adds support to introduce a .efifw section in UKI that can be
used for firmware blobs/images. There can be multiple such sections and each
section can contain a single firmware image.

The matching .hwids entry for a specific platform can be used to select the
most appropriate firmware blob.

ukify tool has been also changed to support addition of a firmware image
in UKI.

Since firmware gets measured automatically, we do not need to measure it
separately as a part of the UKI.

9 months agofirstboot: fix crash when hostname question is skipped
Zbigniew Jędrzejewski-Szmek [Thu, 30 Jan 2025 14:25:38 +0000 (15:25 +0100)] 
firstboot: fix crash when hostname question is skipped

9 months agodns-domain: accept encoded domain names without terminating zero label
Beniamino Galvani [Wed, 29 Jan 2025 10:51:18 +0000 (11:51 +0100)] 
dns-domain: accept encoded domain names without terminating zero label

Commit 1be9b30a3b17 ("dhcp6: use dns_name_from_wire_format") introduced a
stricter validation of domains received via DHCPv6, by using function
dns_name_from_wire_format() which rejects the domain when it is missing the
terminating zero label. According to RFC 4704 § 4.2, DHCPv6 servers should
always add the zero label:

   To send a fully qualified domain name, the Domain Name field is set
   to the DNS-encoded domain name including the terminating zero-length
   label.  To send a partial name, the Domain Name field is set to the
   DNS-encoded domain name without the terminating zero-length label.

   [...]

   Servers SHOULD send the complete fully qualified domain name in
   Client FQDN options.

In practice, there is at least on common DHCPv6 server implementation (dnsmasq)
that sends the FQDN option without the ending zero-length label; after
upgrading to the new systemd, the client cannot parse the option and therefore
the machine doesn't get the hostname provided by dnsmasq.

This commit restores the old behavior that considers a domain valid even when
it's missing the terminating zero label.

Here's a quick reproducer:

--8<--

ip link add veth0 type veth peer name veth1
ip netns add ns1
ip link set veth1 netns ns1
ip link set veth0 address 00:11:22:33:44:55
ip link set veth0 up
ip -n ns1 link set veth1 up
ip -n ns1 address add dev veth1 fd01::1/64

ip netns exec ns1 dnsmasq \
   --pid-file=/tmp/dnsmasq.pid --no-hosts \
   --bind-interfaces --interface veth1 --except-interface lo \
   --dhcp-range=fd01::100,fd01::200 --enable-ra \
   --dhcp-host 00:11:22:33:44:55,foobar &

cat <<EOF > /etc/systemd/network/veth0.network
[Match]
Name=veth0

[Network]
DHCP=ipv6
EOF

networkctl reload
networkctl up veth0
sleep 5
hostname

--8<--

Without this change, systemd-networkd prints the following message and doesn't
set the hostname from DHCP:

  veth0: DHCPv6 client: Failed to parse FQDN option, ignoring: Bad message

9 months agocryptenroll/repart/creds: no longer default to binding against literal PCR 7 (#36200)
Luca Boccassi [Thu, 30 Jan 2025 14:57:15 +0000 (14:57 +0000)] 
cryptenroll/repart/creds: no longer default to binding against literal PCR 7 (#36200)

PCR 7 covers the SecureBoot policy, in particular "dbx", i.e. the
denylist of bad actors. That list is pretty much as frequently updated
as firmware these days (as fwupd took over automatic updating). This
means literal PCR 7 policies are problematic: they likely break soon,
and are as brittle as any other literal PCR policies.

hence, pick safer defaults, i.e. exclude PCR 7 from the default mask.
This means the mask is now empty.

Generally, people should really switch to signed PCR policies covering
PCR 11, in combination with systemd-pcrlock for the other PCRs.

9 months agoFix tense in SD_MESSAGE_SHUTDOWN_STR
Andrew Sayers [Wed, 29 Jan 2025 11:03:00 +0000 (11:03 +0000)] 
Fix tense in SD_MESSAGE_SHUTDOWN_STR

This is printed by bus_manager_log_shutdown() in logind-dbus.c,
near the start of the shutdown process.

Clarify that events *will* happen, long after this message is sent.

9 months agoReduce priority of "cleared HibernateLocation" message
Andrew Sayers [Wed, 29 Jan 2025 13:13:04 +0000 (13:13 +0000)] 
Reduce priority of "cleared HibernateLocation" message

This message appears when a computer hibernates, then awakens, then reboots,
and everything goes OK.  It's a normal progress message the user doesn't need
to know about, but it distracts them from important startup messages and could
even train them to ignore the warning when the procedure fails.

Reduce the level to LOG_INFO.

9 months agocryptenroll,repart: print a log message if no access restrictions are applied to... 36200/head
Lennart Poettering [Wed, 29 Jan 2025 14:13:35 +0000 (15:13 +0100)] 
cryptenroll,repart: print a log message if no access restrictions are applied to TPM-based encryption

9 months agocryptenroll/repart/creds: no longer default to binding against literal PCR 7
Lennart Poettering [Tue, 28 Jan 2025 08:48:48 +0000 (09:48 +0100)] 
cryptenroll/repart/creds: no longer default to binding against literal PCR 7

PCR 7 covers the SecureBoot policy, in particular "dbx", i.e. the
denylist of bad actors. That list is pretty much as frequently updated
as firmware these days (as fwupd took over automatic updating). This
means literal PCR 7 policies are problematic: they likely break soon,
and are as brittle as any other literal PCR policies.

hence, pick safer defaults, i.e. exclude PCR 7 from the default mask.
This means the mask is now empty.

Generally, people should really switch to signed PCR policies covering
PCR 11, in combination with systemd-pcrlock for the other PCRs.

9 months agope: do not warn about .initrd addons
Luca Boccassi [Thu, 30 Jan 2025 01:51:05 +0000 (01:51 +0000)] 
pe: do not warn about .initrd addons

We now support them, so stop warning about them.

9 months agoFix inversion of timesyncd_usec/epoch_usec variables in clock-warp.c
Devilish Spirits [Wed, 29 Jan 2025 20:54:27 +0000 (21:54 +0100)] 
Fix inversion of timesyncd_usec/epoch_usec variables in clock-warp.c

In clock_apply_epoch() function, the /usr/lib/clock-epoch timestamp was set to timesyncd_usec instead of epoch_usec and vice-versa which produced a misleading log message about the clock source systemd used for early clock sanitization. This trivial commit fix the mistake.

9 months agotree-wide: remove some spurious newlines
Nick Rosbrook [Wed, 29 Jan 2025 13:57:44 +0000 (08:57 -0500)] 
tree-wide: remove some spurious newlines

Specifically, remove double newlines, and newlines before '}'.

9 months agomeson: generate keyboard-keys-list from local input.h
Alex Xu (Hello71) [Tue, 28 Jan 2025 22:17:01 +0000 (17:17 -0500)] 
meson: generate keyboard-keys-list from local input.h

otherwise it will use the system input.h which will fail to build if
newer than the bundled version

Fixes: 0a73c8e7b8 ("linux: import input.h and friends")
9 months agoukify: Calculate section size more correctly 36215/head
Daan De Meyer [Wed, 29 Jan 2025 13:44:27 +0000 (14:44 +0100)] 
ukify: Calculate section size more correctly

We should only use Misc_VirtualSize if it's smaller than SizeOfRawData,
since in that case it'll be the non-aligned section size. Otherwise we
have to use SizeOfRawData to get the size on disk.

9 months agoukify: Fix two typing issues
Daan De Meyer [Wed, 29 Jan 2025 13:43:06 +0000 (14:43 +0100)] 
ukify: Fix two typing issues

9 months agodocs: fix plural form
Lennart Poettering [Wed, 29 Jan 2025 12:13:31 +0000 (13:13 +0100)] 
docs: fix plural form

Addresses: https://github.com/systemd/systemd/pull/36133#discussion_r1932816287

9 months agouserdb: move filter of user/group records to the varlink server side (#36133)
Lennart Poettering [Wed, 29 Jan 2025 12:11:38 +0000 (13:11 +0100)] 
userdb: move filter of user/group records to the varlink server side (#36133)

In v257 userdbctl gained support for filtering user records with fuzzy
matching and some other parameters. It was done on the client side only.
This PR adds server-side matching, by exendting the generic userdb
varlink api.

The api is generic any may have many other implementors, hence care is
taken to fallback to exclusively client side filtering in case the
service does not support the new parameters.

In fact I even opted to not actually implement server-side filtering in
any services but systemd-userdbd.service, because it's probably not too
much an optimization in relevant services (we might want to revisit this
later). By implementing it in userdbd the primary entrypoint for userdb
is however covered: the multiplexer interface which provides a single
interface for the multitude of backends. Or in other words: the
multiplexer itself supports server-side filtering even if its own
backends don't, and will hide this neatly away.

One nice side effect from not implementing server side filtering for all
our backends is that the fallback codepaths are comprehensively tested.

Note that this adds some unit tests but not new integration test for all
this, as the filtering tests for userdbctl already existed before, we
just move their implementation from the client to the server side.

9 months agoupdate TODO
Lennart Poettering [Tue, 28 Jan 2025 16:41:13 +0000 (17:41 +0100)] 
update TODO

9 months agoman: Update nss-myhostname.xml to reflect files
AndreFerreiraMsc [Tue, 28 Jan 2025 13:11:58 +0000 (14:11 +0100)] 
man: Update nss-myhostname.xml to reflect files

9 months agonetwork: bridge: add support for configuring locked ports (#36150)
Yu Watanabe [Tue, 28 Jan 2025 19:16:20 +0000 (04:16 +0900)] 
network: bridge: add support for configuring locked ports (#36150)

"Recently" (as of 5.18) the Linux kernel gained the ability of locking
bridge ports to restrict network access to authenticated hosts only.

This is implemented by disabling automated learning and dropping
incoming traffic from unknown hosts. User space is then expected to add
fdb entries for authenticated hosts. Once a fdb entry exist, traffic for
that host will be forwarded as expected.

This was later extended with "Mac Authentication Bypass", where the
locking was extended to fdb entries. In this mode the kernel adds fdb
entries again automatically, but they are locked by default.

To properly configure this, add two network options and one netdev
option:

* `LinkLocalLearning=` to prevent the kernel from creating unlocked
entries based on link-local traffic, which would bypass any
authentication. Needed when enabling learning on a locked port.
* `Locked=` to allow setting a bridge port to locked.
* `MACAuthenticationBypass=` to allow enabling Mac Authentication
 Bypass on a port. Requires learning to be enabled on the port as well
 (and consequently `LinkLocalLearning` disabled on the bridge).

An authenticator (e.g. hostapd) is still needed to do the actual
authentication, the kernel only provides the access control.

9 months agoMinor fixes for ukify tests (#36197)
Luca Boccassi [Tue, 28 Jan 2025 18:49:42 +0000 (18:49 +0000)] 
Minor fixes for ukify tests (#36197)

9 months agowait-online: add initial support for waiting for DNS (#34640)
Luca Boccassi [Tue, 28 Jan 2025 17:33:39 +0000 (17:33 +0000)] 
wait-online: add initial support for waiting for DNS (#34640)

Add a new flag, `--dns`, to systemd-networkd-wait-online to allow
waiting for DNS to be configured. The `--dns` flag respects the `--ipv4`
and `--ipv6` flags, as well as `--interface=` and `--any`.

9 months agotest: support slow test-ukify on Debian/Ubuntu 36197/head
Luca Boccassi [Sun, 26 Jan 2025 17:35:06 +0000 (17:35 +0000)] 
test: support slow test-ukify on Debian/Ubuntu

Kernels are installed in /boot/ so find them there too

9 months agotest: use local stub if available in test-ukify
Luca Boccassi [Sun, 26 Jan 2025 19:50:22 +0000 (19:50 +0000)] 
test: use local stub if available in test-ukify

It might not be available on a CI system in the system
path, so use the local one if it was built

9 months agoukify: Add --sign-profile
Daan De Meyer [Tue, 28 Jan 2025 08:38:26 +0000 (09:38 +0100)] 
ukify: Add --sign-profile

Let's allow configuring which UKI profiles we generate signed PCR
measurements for since there are various types of profiles for
which we do not want to generate signed PCR measurements so that they
can not unlock the encrypted rootfs.

Fixes #36173.

9 months agobootctl: move print block device path calls to command section of its own
Lennart Poettering [Tue, 28 Jan 2025 14:24:51 +0000 (15:24 +0100)] 
bootctl: move print block device path calls to command section of its own

9 months agotest: install stub package for test-ukify unit test
Luca Boccassi [Sun, 26 Jan 2025 20:06:36 +0000 (20:06 +0000)] 
test: install stub package for test-ukify unit test

9 months agonetworkd-test: add basic tests for systemd-networkd-wait-online --dns 34640/head
Nick Rosbrook [Tue, 22 Oct 2024 14:00:49 +0000 (10:00 -0400)] 
networkd-test: add basic tests for systemd-networkd-wait-online --dns

9 months agotest: add test for resolved SubscribeDNSConfiguration API
Nick Rosbrook [Tue, 22 Oct 2024 14:06:11 +0000 (10:06 -0400)] 
test: add test for resolved SubscribeDNSConfiguration API

9 months agotest: cleanup after testcase_12_resolvectl2
Nick Rosbrook [Wed, 23 Oct 2024 20:31:00 +0000 (16:31 -0400)] 
test: cleanup after testcase_12_resolvectl2

9 months agowait-online: add support for waiting for DNS configuration
Nick Rosbrook [Thu, 19 Sep 2024 19:59:50 +0000 (15:59 -0400)] 
wait-online: add support for waiting for DNS configuration

Add a new flag to systemd-networkd-wait-online, --dns, to allow waiting
for DNS to be configured.

DNS is considered configured when at least one DNS server is accessible.
If a link has the property DefaultRoute=yes (either by explicit
configuration, or because there are no routing-only domains), or if the
search domain '.' is configured, wait for link-specific DNS to be
configured. Otherwise, global DNS servers may be considered.

9 months agonetwork: bridge: add support for IFLA_BRPORT_MAB 36150/head
Jonas Gorski [Fri, 24 Jan 2025 12:15:06 +0000 (13:15 +0100)] 
network: bridge: add support for IFLA_BRPORT_MAB

Since linux commit a35ec8e38cdd1766f29924ca391a01de20163931 ("bridge:
Add MAC Authentication Bypass (MAB) support"), included since v6.2, it
is possible to enable MAC Authentication Bypass for bridge ports. In
this mode the locked port learns again, but the learned fdb entries are
locked, allowing user space to unlock hosts based seen MAC addresses.

This requires learning to be enabled on the port, and link-local
learning disabled for the bridge.

Add support to systemd-network for setting the new attribute for bridge
ports.

9 months agonetwork: bridge: add support for IFLA_BRPORT_LOCKED
Jonas Gorski [Mon, 2 Dec 2024 10:54:09 +0000 (11:54 +0100)] 
network: bridge: add support for IFLA_BRPORT_LOCKED

Since linux commit a21d9a670d81103db7f788de1a4a4a6e4b891a0b ("net:
bridge: Add support for bridge port in locked mode"), included since
v5.18,  it is possible to set bridge ports to locked.

Locked ports do not learn automatically, and discard any traffic from
unknown source MACs. To allow traffic, the userspace authenticator is
expected to create fdb entries for authenticated hosts.

Add support to systemd-network for setting the new attribute for bridge
ports.

9 months agonetwork: bridge: add support for NO_LL_LEARN
Jonas Gorski [Tue, 10 Dec 2024 15:45:20 +0000 (16:45 +0100)] 
network: bridge: add support for NO_LL_LEARN

When using locked ports on a bridge link-local learning needs to be
disabled to prevent the kernel from learning and automatically unlocking
hosts based on link-local traffic.

So add support for enabling NO_LL_LEARN for bridges.

9 months agocore: add trigger to path unit debug log
Luca Boccassi [Mon, 27 Jan 2025 20:30:16 +0000 (20:30 +0000)] 
core: add trigger to path unit debug log

Useful for debugging, given it's already logging and the trigger
is known, add it

9 months agokbd-model-map: add a georgian mapping
Adam Williamson [Fri, 10 Jan 2025 21:01:47 +0000 (13:01 -0800)] 
kbd-model-map: add a georgian mapping

https://github.com/legionus/kbd/pull/127 adds a Georgian mapping
to kbd. console-setup already has one. Let's support it here, so
it's used for Georgian installs on distros that use this table.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
9 months agotty-ask-password-agent: use free_and_strdup_warn() for arg_device (#36198)
Lennart Poettering [Tue, 28 Jan 2025 06:22:17 +0000 (07:22 +0100)] 
tty-ask-password-agent: use free_and_strdup_warn() for arg_device (#36198)

9 months agotty-ask-password-agent: use free_and_strdup_warn() for arg_device 36198/head
Mike Yuan [Tue, 28 Jan 2025 01:07:16 +0000 (02:07 +0100)] 
tty-ask-password-agent: use free_and_strdup_warn() for arg_device

Follow-up for 68cf1fc34d3e86a664fb948d413e1db4a24e16dd

Fixes CID#1590840

9 months agotty-ask-password-agent: assert that ask_on_consoles() is called without arg_device
Mike Yuan [Tue, 28 Jan 2025 01:09:52 +0000 (02:09 +0100)] 
tty-ask-password-agent: assert that ask_on_consoles() is called without arg_device

9 months agoresolved: add SubscribeDNSConfiguration to varlink API
Nick Rosbrook [Fri, 11 Oct 2024 18:44:44 +0000 (14:44 -0400)] 
resolved: add SubscribeDNSConfiguration to varlink API

Add a new method to io.systemd.Resolve.Monitor that allows subscribing
to changes in the systemd-resolved DNS configuration. The new method
emits the full DNS configuration (one entry for global configuration,
and one entry for each interface), any time the configuration is
updated.

9 months agoupdate TODO 36133/head
Lennart Poettering [Wed, 22 Jan 2025 22:27:54 +0000 (23:27 +0100)] 
update TODO

9 months agohomectl: port has_regular_user() + acquire_group_list() to use server-side filtering
Lennart Poettering [Wed, 22 Jan 2025 15:53:01 +0000 (16:53 +0100)] 
homectl: port has_regular_user() + acquire_group_list() to use server-side filtering

9 months agouserdbd: implement server side filtering in the Multiplexer API
Lennart Poettering [Wed, 22 Jan 2025 15:45:52 +0000 (16:45 +0100)] 
userdbd: implement server side filtering in the Multiplexer API

This impelements server side filtering in userdbd's multiplexer logic.
Note thta this means that even if some backend doesn't support it
natively the multiplexer will deal with it and apply the filtering as
necessary.

9 months agouserdb: move UserDBMatch handling from userdbctl into generic userdb code to allow...
Lennart Poettering [Wed, 22 Jan 2025 15:40:47 +0000 (16:40 +0100)] 
userdb: move UserDBMatch handling from userdbctl into generic userdb code to allow it to be done server side

This moves around the UserDBMatch handling, moves it out of userdbctl
and into generic userdb code, so that it can be passed to the server
side, to allow server side filtering.

This is preparation for one day allowing complex software to do such
filtering server side, and thus reducing the necessary traffic.

Right now no server side actually knows this, hence care is taken to
downgrade to the userdb varlink API as it was in v257 in case the new
options are not understood. This retains compatibility with any
implementation hence.

9 months agovarlink: add new calls for server-side user record filtering to varlink IDL + to...
Lennart Poettering [Wed, 22 Jan 2025 15:27:14 +0000 (16:27 +0100)] 
varlink: add new calls for server-side user record filtering to varlink IDL + to spec

This is preparation for adding server side filtering to the userdb
logic: it adds some fields for this to the userdb varlink API. This only
adds the IDL for it, no client will use it for now, no server implement
it. That's added in later commits.

9 months agouser-record: add some helpers for working with UserDBMatch
Lennart Poettering [Wed, 22 Jan 2025 15:26:53 +0000 (16:26 +0100)] 
user-record: add some helpers for working with UserDBMatch

9 months agouser-record: rename USER_DISPOSITION_MASK_MAX → USER_DISPOSITION_MASK_ALL
Lennart Poettering [Fri, 24 Jan 2025 21:15:29 +0000 (22:15 +0100)] 
user-record: rename USER_DISPOSITION_MASK_MAX → USER_DISPOSITION_MASK_ALL

On request by yuwata.

9 months agouser-record: add helper for dispatching a disposition mask
Lennart Poettering [Tue, 21 Jan 2025 11:53:02 +0000 (12:53 +0100)] 
user-record: add helper for dispatching a disposition mask

9 months agomkosi: add loongarch64 to Debian's list of EFI arches
Luca Boccassi [Sat, 25 Jan 2025 01:21:30 +0000 (01:21 +0000)] 
mkosi: add loongarch64 to Debian's list of EFI arches

9 months agoudev: add input/by-{id,path} symlinks for hidraw devices
Nick Rosbrook [Fri, 24 Jan 2025 20:42:38 +0000 (15:42 -0500)] 
udev: add input/by-{id,path} symlinks for hidraw devices

Take some of the same rule structure from 60-persistent-input.rules, and
apply it to hidraw devices in 60-persistent-hidraw.rules.

Since one of the motivations for this is being able to easily reference
FIDO tokens, add a special case when ID_FIDO_TOKEN==1, and add 'fido'
to the symlink.

9 months agoFix typo
ver4a [Mon, 27 Jan 2025 18:20:44 +0000 (19:20 +0100)] 
Fix typo

9 months agoresolved: add link_get_default_route helper
Nick Rosbrook [Thu, 14 Nov 2024 19:31:07 +0000 (14:31 -0500)] 
resolved: add link_get_default_route helper

The dbus property getter for DefaultRoute does not simply check
link->default_route. Instead, if l->default_route is not explicitly
configured, it checks dns_scope_is_default_route(l->unicast_scope).

Add a link_get_default_route() helper with this logic so that it can be
used for consistency.

9 months agoresolved: add a helper to check if DNS server is accessible
Nick Rosbrook [Tue, 15 Oct 2024 20:30:52 +0000 (16:30 -0400)] 
resolved: add a helper to check if DNS server is accessible

We check this by opening a UDP socket and attempting to connect. We do
not send any traffic on it, but this will tell us if there are routes to
the DNS server.

This will be used in a later commit.

9 months agovarlink-util: add varlink_many_notify
Nick Rosbrook [Tue, 8 Oct 2024 14:19:42 +0000 (10:19 -0400)] 
varlink-util: add varlink_many_notify

We already have varlink_many_notifyb. Just re-factor it slightly and add
a plain varlink_many_notify.

9 months agoresolve: rename varlink_subscription -> varlink_query_results_subscription
Nick Rosbrook [Mon, 7 Oct 2024 15:39:57 +0000 (11:39 -0400)] 
resolve: rename varlink_subscription -> varlink_query_results_subscription

No functional change. Make it more clear that these varlink connections
are subscribed to query results. This prepares for adding SubscribeDNS
to the varlink API.

9 months agoCleanups around tty_is_vc() and get_kernel_consoles() (#36171)
Daan De Meyer [Mon, 27 Jan 2025 13:43:39 +0000 (14:43 +0100)] 
Cleanups around tty_is_vc() and get_kernel_consoles() (#36171)

Prompted by #36167
Replaces #36167 and #36175

9 months agomkosi: Update to latest (#36190)
Daan De Meyer [Mon, 27 Jan 2025 13:15:37 +0000 (14:15 +0100)] 
mkosi: Update to latest  (#36190)

9 months agoAdds asus T103HAF rotation matrix to 60-sensor.hwdb (#36177)
16mc1r [Mon, 27 Jan 2025 13:01:05 +0000 (14:01 +0100)] 
Adds asus T103HAF rotation matrix to 60-sensor.hwdb (#36177)

Rotation Matrix to enable correct auto-rotation with
[iio-sensor-proxy](https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/)
on an Asus Transformer Mini T103HAF with iio-sensor `HID-SENSOR-200073`.
- Tested on KDE Plasma Mobile (Fedora 41), details see inxi report.

Device Details:
- low powered 2in1 convertible with 10.1" screen size, 4core atom cpu
and 4gb ram. Usefull as x86 based tablet with stylus for annotation and
reading.
- [official asus website for the
device](https://www.asus.com/us/laptops/for-home/everyday-use/asus-transformer-mini-t103/)

#### inxi device report
```sh
System:
  Host: ------ Kernel: 6.12.10-200.fc41.x86_64 arch: x86_64 bits: 64
  Console: pty pts/3 Distro: Fedora Linux 41 (KDE Plasma Mobile)
Machine:
  Type: Detachable System: ASUSTeK product: T103HAF v: 1.0 serial: J1N0CX212087050
  Mobo: ASUSTeK model: T103HAF v: 1.0 serial: ---------- UEFI: American Megatrends
    v: T103HAF.306 date: 12/05/2017
CPU:
  Info: quad core model: Intel Atom x5-Z8350 bits: 64
Info:
  Memory: total: 4 GiB
```

### udevadm info output for iio-device
```sh
# iio-device / accelerometer
P: /devices/pci0000:00/0000:00:0a.0/{33AECD58-B679-4E54-9BD9-A04D34F0C226}/001F:8086:0001.0004/HID-SENSOR-200073.3.auto/iio:device0
M: iio:device0
R: 0
U: iio
T: iio_device
D: c 234:0
N: iio:device0
L: 0
E: DEVPATH=/devices/pci0000:00/0000:00:0a.0/{33AECD58-B679-4E54-9BD9-A04D34F0C226}/001F:8086:0001.0004/HID-SENSOR-200073.3.auto/iio:device0
E: DEVNAME=/dev/iio:device0
E: DEVTYPE=iio_device
E: MAJOR=234
E: MINOR=0
E: SUBSYSTEM=iio
E: USEC_INITIALIZED=18119681
E: ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, -1
E: IIO_SENSOR_PROXY_TYPE=iio-poll-accel iio-buffer-accel
E: SYSTEMD_WANTS=iio-sensor-proxy.service
E: TAGS=:systemd:
E: CURRENT_TAGS=:systemd:
```
### Full `udevadm info  --export-db`
- as requested in
[60-sensor.hwdb](https://github.com/systemd/systemd/blob/ba0266b376d7cc5205d8a4a3d999aec13c24fe5d/hwdb.d/60-sensor.hwdb#L35)
-
[udevadm-info_103HAF.txt](https://github.com/user-attachments/files/18550448/udevadm-info_103HAF.txt)

9 months agocore/dbus-manager: make output argument of transient_unit_from_message() optional
Yu Watanabe [Mon, 27 Jan 2025 00:24:16 +0000 (09:24 +0900)] 
core/dbus-manager: make output argument of transient_unit_from_message() optional

9 months agomkosi: Add VCS_TAG to PassEnvironment= 36190/head
Daan De Meyer [Mon, 27 Jan 2025 10:27:49 +0000 (11:27 +0100)] 
mkosi: Add VCS_TAG to PassEnvironment=

9 months agomkosi: Bump minimum version to 25
Daan De Meyer [Mon, 27 Jan 2025 10:26:29 +0000 (11:26 +0100)] 
mkosi: Bump minimum version to 25

Let's require everyone to be on the now officially released mkosi 25.

9 months agomkosi: Update to latest
Daan De Meyer [Mon, 27 Jan 2025 10:26:13 +0000 (11:26 +0100)] 
mkosi: Update to latest

9 months agomachine: revert type change of "leader" in io.systemd.Machine.Register method
Yu Watanabe [Fri, 24 Jan 2025 19:05:51 +0000 (04:05 +0900)] 
machine: revert type change of "leader" in io.systemd.Machine.Register method

The varlink method io.systemd.Machine.Register() is in v256, hence type
of "leader" cannot be changed.
Let's revert the change by 755cb018c9b3e93245afb86ec94223756ddd70e4, and
introduce another field "leaderProcessId", which takes detailed information
of the process.

Fixes a regression caused by 755cb018c9b3e93245afb86ec94223756ddd70e4.
Fixes #36155.

9 months agojournal-remote: coding style fixlets
Yu Watanabe [Sun, 26 Jan 2025 23:59:05 +0000 (08:59 +0900)] 
journal-remote: coding style fixlets

Co-authored-by: Andrii Chubatiuk <andrew.chubatiuk@gmail.com>
9 months agoman: insert missing varname tag
Ivan Trubach [Sun, 26 Jan 2025 23:49:55 +0000 (08:49 +0900)] 
man: insert missing varname tag

9 months agostrv: drop redundant string_strv_hash_ops
Yu Watanabe [Mon, 27 Jan 2025 03:17:19 +0000 (12:17 +0900)] 
strv: drop redundant string_strv_hash_ops

It is completely equivalent to string_hash_ops_free_strv_free.