]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
7 weeks agotree-wide: Remove unused includes 39023/head
Daan De Meyer [Fri, 19 Sep 2025 09:31:11 +0000 (11:31 +0200)] 
tree-wide: Remove unused includes

7 weeks agoinclude: Add missing IWYU pragmas
Daan De Meyer [Fri, 19 Sep 2025 09:30:12 +0000 (11:30 +0200)] 
include: Add missing IWYU pragmas

7 weeks agotree-wide: Fix two curl warnings
Daan De Meyer [Fri, 19 Sep 2025 09:29:36 +0000 (11:29 +0200)] 
tree-wide: Fix two curl warnings

7 weeks agovarious: port remaining users of setmntent() to libmount (#38929)
Lennart Poettering [Fri, 19 Sep 2025 07:26:06 +0000 (09:26 +0200)] 
various: port remaining users of setmntent() to libmount (#38929)

7 weeks agovarious tweaks for systemd-creds & related (#38979)
Yu Watanabe [Fri, 19 Sep 2025 07:21:12 +0000 (16:21 +0900)] 
various tweaks for systemd-creds & related (#38979)

7 weeks agochase: tweaks to chase_open()/chase_openat() (#38984)
Yu Watanabe [Fri, 19 Sep 2025 07:11:24 +0000 (16:11 +0900)] 
chase: tweaks to chase_open()/chase_openat() (#38984)

7 weeks agochattr-util/acl-util: add helpers that tells us if an inode type can do chattr/acl...
Yu Watanabe [Fri, 19 Sep 2025 06:50:18 +0000 (15:50 +0900)] 
chattr-util/acl-util: add helpers that tells us if an inode type can do chattr/acl (#39003)

Split out of #38728 but I think this makes things more readable in
general and makes sense on its own.

7 weeks agoimportd: some minor tweaks (#39008)
Yu Watanabe [Fri, 19 Sep 2025 06:48:14 +0000 (15:48 +0900)] 
importd: some minor tweaks (#39008)

7 weeks agoimportd: port to PidRef
Lennart Poettering [Sun, 20 Jul 2025 06:56:28 +0000 (08:56 +0200)] 
importd: port to PidRef

7 weeks agofileio: modernize xopendirat() a bit
Lennart Poettering [Mon, 25 Aug 2025 09:05:48 +0000 (11:05 +0200)] 
fileio: modernize xopendirat() a bit

7 weeks agolocalectl: use XKB path specified from environment variable
ners [Sat, 2 Aug 2025 17:01:00 +0000 (19:01 +0200)] 
localectl: use XKB path specified from environment variable

7 weeks agouserdb: suppress creation of empty userdb dirs
Mike Yuan [Thu, 18 Sep 2025 16:05:17 +0000 (18:05 +0200)] 
userdb: suppress creation of empty userdb dirs

7 weeks agounits: add missing Documentation=
Luca Boccassi [Thu, 18 Sep 2025 19:46:39 +0000 (20:46 +0100)] 
units: add missing Documentation=

The initrd units are described in the graphs in the bootup manpage,
so use that one for them.

7 weeks agocreds-util: don't reference superblocks when decrypting creds 38979/head
Lennart Poettering [Thu, 18 Sep 2025 06:44:02 +0000 (08:44 +0200)] 
creds-util: don't reference superblocks when decrypting creds

7 weeks agocore: if we cannot decode a TPM credential skip over it for ImportCredential=
Lennart Poettering [Wed, 17 Sep 2025 08:37:31 +0000 (10:37 +0200)] 
core: if we cannot decode a TPM credential skip over it for ImportCredential=

let's skip over credentials we cannot decode when they are found with
ImportCredential=. When installing an OS on some disk and using that
disk on a different machine than assumed we'll otherwise end up with a
broken boot, because the credentials cannot be decoded when starting
systemd-firstboot. Let's handle this somewhat gracefully.

This leaves handling for LoadCredential=/SetCredential= as it is (i.e.
failure to decrypt results in service failure), because it is a lot more
explicit and focussed as opposed to ImportCredentials= which looks
everywhere, uses globs and so on and is hence very vague and unfocussed.

Fixes: #34740
7 weeks agocreds: expose more errors as explicit varlink errors
Lennart Poettering [Wed, 17 Sep 2025 08:37:25 +0000 (10:37 +0200)] 
creds: expose more errors as explicit varlink errors

7 weeks agocreds-util: tweak error code generation in decrypt_credential_and_warn() a bit, and...
Lennart Poettering [Wed, 17 Sep 2025 08:22:02 +0000 (10:22 +0200)] 
creds-util: tweak error code generation in decrypt_credential_and_warn() a bit, and add a comment listing it

Let's make some specific condition more recognizable via error codes of
their own, and in particular remove confusion between EREMOTE as
returned by tpm2_unseal() and by us.

7 weeks agocreds: modernize varlink server setup a bit
Lennart Poettering [Thu, 28 Aug 2025 08:53:12 +0000 (10:53 +0200)] 
creds: modernize varlink server setup a bit

Let's make use of the userdata parameter of varlink_server_new(), and
split out the code into its own helper function.

7 weeks agoacl-util: add new inode_type_can_acl() helper 39003/head
Lennart Poettering [Fri, 22 Aug 2025 09:04:41 +0000 (11:04 +0200)] 
acl-util: add new inode_type_can_acl() helper

7 weeks agochattr-util: add inode_type_can_chattr() helper
Lennart Poettering [Thu, 21 Aug 2025 20:38:30 +0000 (22:38 +0200)] 
chattr-util: add inode_type_can_chattr() helper

7 weeks agosd-varlink: two small additions (#38994)
Lennart Poettering [Thu, 18 Sep 2025 19:34:09 +0000 (21:34 +0200)] 
sd-varlink: two small additions (#38994)

7 weeks agomountfsd: add recognizable error if we pass an fd with unexpected flags
Lennart Poettering [Tue, 19 Aug 2025 19:06:48 +0000 (21:06 +0200)] 
mountfsd: add recognizable error if we pass an fd with unexpected flags

7 weeks agobasic: validate timezones in get_timezones()
Nick Rosbrook [Thu, 18 Sep 2025 13:16:02 +0000 (09:16 -0400)] 
basic: validate timezones in get_timezones()

Depending on the packaging of tzdata, /usr/share/zoneinfo/tzdata.zi may
reference zones or links that are not actually present on the system.
E.g. on Debian and Ubuntu, there is a tzdata-legacy package that
contains "legacy" zones and links, but they are still referenced in
/usr/share/zoneinfo/tzdata.zi shipped by the main tzdata package.

Right now, get_timezoes() does not validate timezones when building the
list, which makes the following possible:

 $ timedatectl list-timezones | grep "US/Alaska"
 US/Alaska

 $ timedatectl set-timezone US/Alaska
 Failed to set time zone: Invalid or not installed time zone 'US/Alaska'

which feels buggy. Hence, simply validate timezones in get_timezones()
to avoid listing timezones that are not installed.

7 weeks agomountfsd: uncomment CapabilityBoundingSet= line
Lennart Poettering [Sat, 23 Aug 2025 06:08:06 +0000 (08:08 +0200)] 
mountfsd: uncomment CapabilityBoundingSet= line

Since mountfsd was added in 702a52f4b5d49cce11e2adbc740deb3b644e2de0 the
caps bounding set line was commented. That's an accident. Fix that. (We
need to add a bunch of caps to the list).

7 weeks agounits: explicitly reset TTY before running stuff on console
Lennart Poettering [Thu, 18 Sep 2025 15:50:06 +0000 (17:50 +0200)] 
units: explicitly reset TTY before running stuff on console

This adds TTYReset=yes to all units which run directly on the TTY. We
already had this in place for the gettys, but this adds it for the rest
that basically has StandardInput=tty + StandardOutput=tty set.

Originally, for these tools it wasn't necessary to reset the TTY,
because we after all already reset /dev/console very very early on once,
during PID1's early initialization, and hence there's no real reason to
do it again for these early boot services. But that's actually not
right, because since #36666 the TTY we reset from PID 1 is typically
/dev/console but the TTY those services are invoked on is typically the
resolved version of that, i.e. wherever that points. Now you might
think: if one is just an alias to the other, why does it matter to reset
this again? Well, because it's only a half-assed alias, and as it turns
out WIOCSWINSZ is not propagated from one to the other, i.e the terminal
dimesions we initialize for /dev/console don't propagate to whatever
that points to.

One option to address that would be to immediately propagate this down
ourselves (or to fix the kernel for it), but it felt safer to simply do
the reset again before the use, after all these one one-off services,
and there's no point in optimizing much here. Moreover, its probably
safer to give the guarantee that when the firstboot stuff (which after
all queries for pws to set) runs it definitely certainly guaranteed has
a properly reset terminal.

7 weeks agoTODO: drop completed entry 38929/head
Mike Yuan [Sun, 14 Sep 2025 19:13:24 +0000 (21:13 +0200)] 
TODO: drop completed entry

7 weeks agocodeql: taint setmntent() and getmntent()
Mike Yuan [Tue, 16 Sep 2025 17:38:09 +0000 (19:38 +0200)] 
codeql: taint setmntent() and getmntent()

7 weeks agomount-util: drop now unused _cleanup_endmntent_
Mike Yuan [Sat, 6 Sep 2025 15:24:45 +0000 (17:24 +0200)] 
mount-util: drop now unused _cleanup_endmntent_

7 weeks agoremount-fs: port to libmount parser
Mike Yuan [Sun, 14 Sep 2025 18:58:11 +0000 (20:58 +0200)] 
remount-fs: port to libmount parser

7 weeks agoremount-fs: minor coding style cleanups
Mike Yuan [Sun, 14 Sep 2025 19:03:15 +0000 (21:03 +0200)] 
remount-fs: minor coding style cleanups

7 weeks agocryptsetup: port from setmntent() to libmount parser
Mike Yuan [Sat, 6 Sep 2025 15:23:27 +0000 (17:23 +0200)] 
cryptsetup: port from setmntent() to libmount parser

7 weeks agofstab-generator: port to libmount parser
Mike Yuan [Sat, 6 Sep 2025 15:16:14 +0000 (17:16 +0200)] 
fstab-generator: port to libmount parser

7 weeks agoTEST-81-GENERATORS: libmount disallows omitting fstype
Mike Yuan [Thu, 18 Sep 2025 18:21:29 +0000 (20:21 +0200)] 
TEST-81-GENERATORS: libmount disallows omitting fstype

It's not well-formed to begin with. And util-linux's mount(8)
is pretty much ubiquitously employed, hence it will be rejected
elsewhere too. Just stop pretending it is valid just because
glibc parser is sloppy.

7 weeks agosystemd-boot-update.service & zsh: replace --no-variables with --variables= (#39011)
Mike Yuan [Thu, 18 Sep 2025 17:57:42 +0000 (19:57 +0200)] 
systemd-boot-update.service & zsh: replace --no-variables with --variables= (#39011)

7 weeks agoBump required minimum version of libfido2 to 1.5.0 (#38975)
Lennart Poettering [Thu, 18 Sep 2025 15:59:44 +0000 (17:59 +0200)] 
Bump required minimum version of libfido2 to 1.5.0 (#38975)

Major distributions already have libfido2 >= 1.12.0. Let's bump the
required minimum version to 1.5.0, which provides FIDO_ERR_UV_BLOCKED.

Note, libfido2 1.5.0 was released on 2020-09-01.

See also #38608.

7 weeks agobtrfs-util: try unlinkat(AT_REMOVEDIR) before resorting to btrfs ioctls
Lennart Poettering [Tue, 15 Jul 2025 16:29:03 +0000 (18:29 +0200)] 
btrfs-util: try unlinkat(AT_REMOVEDIR) before resorting to btrfs ioctls

An empty btrfs subvolume can always be removed without privs, hence try
to use unlinkat() first.

7 weeks agozsh: replace bootctl --no-variables with --variables= 39011/head
nl6720 [Thu, 18 Sep 2025 13:54:10 +0000 (16:54 +0300)] 
zsh: replace bootctl --no-variables with --variables=

bbeeea43625d22d2ab92b26ed93378acbad8ca66 replaced the option in bootctl.

7 weeks agosystemd-boot-update.service: replace --no-variables with --variables=no
nl6720 [Thu, 18 Sep 2025 13:52:31 +0000 (16:52 +0300)] 
systemd-boot-update.service: replace --no-variables with --variables=no

bbeeea43625d22d2ab92b26ed93378acbad8ca66 replaced the option in bootctl,
so systemd-boot-update.service should follow.

7 weeks agoman: run update-man-rules 38994/head
Lennart Poettering [Thu, 18 Sep 2025 09:00:36 +0000 (11:00 +0200)] 
man: run update-man-rules

7 weeks agosd-varlink: optionally handle SIGTERM/SIGINT explicitly in simple varlink event loop
Lennart Poettering [Mon, 15 Sep 2025 16:17:59 +0000 (18:17 +0200)] 
sd-varlink: optionally handle SIGTERM/SIGINT explicitly in simple varlink event loop

7 weeks agosd-varlink: add api for resetting timeout to default
Lennart Poettering [Fri, 5 Sep 2025 12:22:07 +0000 (14:22 +0200)] 
sd-varlink: add api for resetting timeout to default

We currently don't expose the literal default time-out as API. Let's at
least provide users with a way to reset the time-out to the default.

7 weeks agomeson: downgrade dep on libgcrypt
Lennart Poettering [Mon, 8 Sep 2025 19:48:39 +0000 (21:48 +0200)] 
meson: downgrade dep on libgcrypt

We don't link against libgcrypt anymore, we use dlopen()

7 weeks agoimport: always use the same buffer size 39008/head
Lennart Poettering [Fri, 22 Aug 2025 15:04:37 +0000 (17:04 +0200)] 
import: always use the same buffer size

Let's synchronize the buffer sizes used when passing around the disk
images, i.e. size both our internal buffers and the pipe buffers the
same (so that we can always write()/read() everything in one gone -
except for the noise compression inserts).

Let's also increase the buffer sizes from 16K to 128K, which made a
difference for me, because it reduces the number of syscalls quite a
bit.

7 weeks agoexport-tar: refuse to write tar to a TTY
Lennart Poettering [Thu, 21 Aug 2025 09:26:43 +0000 (11:26 +0200)] 
export-tar: refuse to write tar to a TTY

7 weeks agopull-job: fix include order
Lennart Poettering [Wed, 20 Aug 2025 15:36:37 +0000 (17:36 +0200)] 
pull-job: fix include order

7 weeks agosd-json: two small tweaks (#38980)
Mike Yuan [Thu, 18 Sep 2025 12:16:45 +0000 (14:16 +0200)] 
sd-json: two small tweaks (#38980)

7 weeks agoChange symlinks params to target & linkpath
Zbigniew JÄ™drzejewski-Szmek [Tue, 16 Sep 2025 14:58:34 +0000 (16:58 +0200)] 
Change symlinks params to target & linkpath

This is what the symlinkat.2 man page uses.

The old naming with 'to' and 'from', where 'to' is the symlink name
and 'from' is the symlink target is very confusing.

Follow-up for 892838911b21113a20a8ef0ad4f2e5336753afc8.

7 weeks agoman: Point to the nss-systemd manpage for more details.
Andreas Schneider [Thu, 18 Sep 2025 09:22:35 +0000 (11:22 +0200)] 
man: Point to the nss-systemd manpage for more details.

7 weeks agomeson tweaklets (#38978)
Luca Boccassi [Thu, 18 Sep 2025 10:00:19 +0000 (11:00 +0100)] 
meson tweaklets (#38978)

7 weeks agoFix path in docs for local pcrlock.d directory
Kai Wohlfahrt [Wed, 17 Sep 2025 21:53:59 +0000 (23:53 +0200)] 
Fix path in docs for local pcrlock.d directory

7 weeks agokernel-install: version sort listed kernels (#38983)
Luca Boccassi [Thu, 18 Sep 2025 09:58:37 +0000 (10:58 +0100)] 
kernel-install: version sort listed kernels (#38983)

7 weeks agoman: change lexical to lexicographic
Jörg Behrmann [Thu, 18 Sep 2025 08:38:07 +0000 (10:38 +0200)] 
man: change lexical to lexicographic

This changes the instances of lexical to lexicographic, thus making it easier
to grep for instances of lexicographic order, since there's only one variant of
the word to consider.

Lexicographic is chosen since there are slightly fewer instances of lexical and
lexicographic seems a better fit than lexical after checking a few
dictionaries.

The words lexical, lexicographic, and lexicographical are synonyms in
computing, meaning an alphabetical order. Both the Oxford dictionary and
Merriam-Webster make no distinction between lexicographic and lexicographical,
with only Wiktionary adding a more precise meaning of

    Meeting lexicographical standards or requirements; worthy of being included
    in a dictionary. [1]

Since, outside of computing, lexicographic(al) has the more specific meaning
pertaining to lexicography, i.e. the editing or making of dictionaries [2], and
lexical only has this as a secondary meaning after its linguistic meaning [3],
lexicographic fits the meaning of including and ordering entries better.

[1] https://en.wiktionary.org/wiki/lexicographical#English
[2] https://www.merriam-webster.com/dictionary/lexicographic
[3] https://www.oed.com/dictionary/lexical_adj

7 weeks agosd-id128: tighten rules on chasing machine-id files 38984/head
Lennart Poettering [Thu, 4 Sep 2025 16:43:31 +0000 (18:43 +0200)] 
sd-id128: tighten rules on chasing machine-id files

7 weeks agochase: honour CHASE_MUST_BE_DIRECTORY/CHASE_MUST_BE_REGULAR properly in chase_and_ope...
Lennart Poettering [Fri, 5 Sep 2025 12:15:48 +0000 (14:15 +0200)] 
chase: honour CHASE_MUST_BE_DIRECTORY/CHASE_MUST_BE_REGULAR properly in chase_and_openat() and related calls

7 weeks agochase: mask away CHASE_MUST_BE_REGULAR in chase_openat()
Lennart Poettering [Fri, 5 Sep 2025 12:12:37 +0000 (14:12 +0200)] 
chase: mask away CHASE_MUST_BE_REGULAR in chase_openat()

We pin the parent directory of the specified directory via CHASE_PARENT,
but if we do that we really should mask off CHASE_MUST_BE_REGULAR,
because a parent dir of course is a dir, nothing else. The
CHASE_MUST_BE_REGULAR after all should apply to the file created in that
dir, not to the parent.

7 weeks agokernel-install: when listing kernels sort them by version 38983/head
Lennart Poettering [Thu, 18 Sep 2025 07:30:57 +0000 (09:30 +0200)] 
kernel-install: when listing kernels sort them by version

7 weeks agoformat-table: add TABLE_VERSION cell type
Lennart Poettering [Thu, 18 Sep 2025 07:29:27 +0000 (09:29 +0200)] 
format-table: add TABLE_VERSION cell type

This is exactly like TABLE_STRING, with one exception: it sorts via
strverscmp_improved().

7 weeks agosd-json: allow sd_json_dispatch() accept NULL pointers and treat them like empty... 38980/head
Lennart Poettering [Fri, 29 Aug 2025 13:17:56 +0000 (15:17 +0200)] 
sd-json: allow sd_json_dispatch() accept NULL pointers and treat them like empty objects

7 weeks agosd-json: make sure JSON_BUILD_STRING_UNDERSCORIFY() maps + to _, too
Lennart Poettering [Wed, 10 Sep 2025 20:46:40 +0000 (22:46 +0200)] 
sd-json: make sure JSON_BUILD_STRING_UNDERSCORIFY() maps + to _, too

This is ultimately preparation for making systemd-creds's --with-key=
switch also accessible via Varlink, because it uses "+" inside an the
enum name. It makes sense to to allow this generally however.

7 weeks agomeson: sort components 38978/head
Lennart Poettering [Thu, 28 Aug 2025 09:50:39 +0000 (11:50 +0200)] 
meson: sort components

7 weeks agomeson: fail build when encountering unused variables
Lennart Poettering [Thu, 11 Sep 2025 13:26:25 +0000 (15:26 +0200)] 
meson: fail build when encountering unused variables

7 weeks agosd-boot: allow configuration of log levels (#38701)
Yu Watanabe [Thu, 18 Sep 2025 03:06:48 +0000 (12:06 +0900)] 
sd-boot: allow configuration of log levels (#38701)

This allows for more liberal usage of logging functionality as messages
will no longer always show up on screen, regardless of urgency. The log
level to use can be configured through an SMBIOS type 11 string
(`io.systemd.boot.loglevel=`) or by using the `log-level` option in
loader.conf. Valid values are debug, info, notice, warning, err, crit,
alert, and emerg. By default, info will be used.

7 weeks agobasic/efivars: read EFI variables using one read(), not two (#38864)
Yu Watanabe [Thu, 18 Sep 2025 03:03:30 +0000 (12:03 +0900)] 
basic/efivars: read EFI variables using one read(), not two (#38864)

In https://github.com/systemd/systemd/issues/38842 it is reported that
we're again having trouble accessing EFI variables:
```
  [  292.212415] H (udev-worker)[253]: Reading EFI variable /sys/firmware/efi/efivars/LoaderDevicePartUUID-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
  ...
  [  344.397961] H (udev-worker)[253]: Detected slow EFI variable read access on LoaderDevicePartUUID-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f: 52.185510s
```

We don't know what causes the slowdown, but it seems reasonable to avoid
unnecessary read() calls. We would read the 4-byte attr first, and then
the actual value later. But our code always reads the value (and
discards the attr in all cases except one, when _writing_ the variable),
so let's optimize for the case where we read the value and read the
whole contents in one read().

7 weeks agoresolve: two cleanups for varlink method (#38467)
Yu Watanabe [Thu, 18 Sep 2025 02:57:04 +0000 (11:57 +0900)] 
resolve: two cleanups for varlink method (#38467)

7 weeks agomount-util: support 'atime' family of mount options for fsmount()
Luca Boccassi [Mon, 1 Sep 2025 20:51:53 +0000 (21:51 +0100)] 
mount-util: support 'atime' family of mount options for fsmount()

7 weeks agostub: fix file path handling for loaded kernel
Tobias Heider [Mon, 25 Aug 2025 14:07:54 +0000 (16:07 +0200)] 
stub: fix file path handling for loaded kernel

- Actually pass the new memory file path to parent_loaded_image->FilePath
- Restore old parent_loaded_image if Linux returns
- Pass the same kernel_file_path in load_via_boot_services path
- s/Re-use/Patch in comment explaining what we are doing

Fixes #38566

7 weeks agosystemd-repart: add encryption configs into repart.d/* (#38052)
Yu Watanabe [Thu, 18 Sep 2025 02:02:38 +0000 (11:02 +0900)] 
systemd-repart: add encryption configs into repart.d/* (#38052)

As explained in https://github.com/systemd/systemd/issues/37892, it
would be nice to define per-partition PCRs/key file to use.

The global default config will be still defined as cmdline options, and
`TPM2PCRs=` and `KeyFile=` will be overriden by them.

7 weeks agovmspawn: fix error handling
Yu Watanabe [Wed, 17 Sep 2025 23:37:36 +0000 (08:37 +0900)] 
vmspawn: fix error handling

Follow-up for 9b5ba882bd9ae4e0ed270289eada03c2040fefe2.

7 weeks agoBump required minimum version of libfido2 to 1.5.0 38975/head
Yu Watanabe [Sun, 17 Aug 2025 15:39:21 +0000 (00:39 +0900)] 
Bump required minimum version of libfido2 to 1.5.0

Major distributions already have libfido2 >= 1.12.0.
Let's bump the required minimum version to 1.5.0, which provides
FIDO_ERR_UV_BLOCKED.

Note, libfido2 1.5.0 was released on 2020-09-01.

See also #38608.

7 weeks agotest: several random cleanups and fixlets (#38877)
Yu Watanabe [Thu, 18 Sep 2025 00:13:17 +0000 (09:13 +0900)] 
test: several random cleanups and fixlets (#38877)

7 weeks agoresolve/varlink: use sd_json_dispatch_const_string() at more places 38467/head
Yu Watanabe [Sun, 3 Aug 2025 21:01:46 +0000 (06:01 +0900)] 
resolve/varlink: use sd_json_dispatch_const_string() at more places

7 weeks agoresolve/varlink: replace json_dispatch_address() with json_dispatch_byte_array_iovec()
Yu Watanabe [Sun, 3 Aug 2025 19:44:19 +0000 (04:44 +0900)] 
resolve/varlink: replace json_dispatch_address() with json_dispatch_byte_array_iovec()

7 weeks agosysupdate: use conf_files_list_strv_full() where possible (#38198)
Yu Watanabe [Wed, 17 Sep 2025 23:56:23 +0000 (08:56 +0900)] 
sysupdate: use conf_files_list_strv_full() where possible (#38198)

7 weeks agosd-boot: allow setting the log level through loader.conf 38701/head
Felix Pehla [Tue, 26 Aug 2025 18:13:00 +0000 (20:13 +0200)] 
sd-boot: allow setting the log level through loader.conf

Allow configuring the log level used by sd-boot by setting
`log-level=<level>` in loader.conf. `info` is used by default.

7 weeks agosd-boot: allow setting the log level through SMBIOS 11
Felix Pehla [Sun, 24 Aug 2025 20:22:59 +0000 (22:22 +0200)] 
sd-boot: allow setting the log level through SMBIOS 11

Allow configuring the log level used by sd-boot by setting
`io.systemd.boot.loglevel=<level>` as SMBIOS type 11 string.
`info` is used if unset.

7 weeks agosd-boot: allow setting the maximum log level
Felix Pehla [Sun, 24 Aug 2025 20:21:36 +0000 (22:21 +0200)] 
sd-boot: allow setting the maximum log level

7 weeks agosd-boot: efi-log: use log levels internally
Felix Pehla [Sat, 23 Aug 2025 15:27:20 +0000 (17:27 +0200)] 
sd-boot: efi-log: use log levels internally

Change log_internal() to receive a log level from which a text color is
derived, rather than the text color directly, and adjust various log_*
macros to use them internally.

7 weeks agocore/exec-credential: use CLEANUP_TMPFILE_AT
Mike Yuan [Wed, 17 Sep 2025 20:27:37 +0000 (22:27 +0200)] 
core/exec-credential: use CLEANUP_TMPFILE_AT

7 weeks agoFeature/homectl recovery key update (#38702)
Govind Venugopal [Wed, 17 Sep 2025 23:49:26 +0000 (16:49 -0700)] 
Feature/homectl recovery key update (#38702)

Implements the ability to add recovery keys to existing user accounts
via homectl update --recovery-key=yes. Previously, recovery keys could
only be configured during initial user creation, requiring users to
recreate their entire home directory to add recovery keys later.

Fixes: #23602
7 weeks agounits: don't force the loading of the loop and dm_mod modules in systemd-repart.service
Franck Bui [Wed, 10 Sep 2025 13:30:31 +0000 (15:30 +0200)] 
units: don't force the loading of the loop and dm_mod modules in systemd-repart.service

This avoids loading the aforementioned modules when systemd-repart is skipped
during the boot process, which is the case most of the time.

7 weeks agojournalctl: add -W as short for --no-hostname (#38704)
Yu Watanabe [Wed, 17 Sep 2025 23:45:44 +0000 (08:45 +0900)] 
journalctl: add -W as short for --no-hostname (#38704)

--no-hostname is one of the switches I use very often. In particular,
when looking at CI logs, the hostname is almost never interesting.

7 weeks agoAlign meson summary and gperf tables (#38578)
Yu Watanabe [Wed, 17 Sep 2025 23:44:08 +0000 (08:44 +0900)] 
Align meson summary and gperf tables (#38578)

No functional change, just refactoring.

7 weeks agoudev-rules: add OPTIONS="dump-json" to dump current status in JSON format
Yu Watanabe [Tue, 5 Aug 2025 18:08:05 +0000 (03:08 +0900)] 
udev-rules: add OPTIONS="dump-json" to dump current status in JSON format

This produces the output similar to 'udevadm test --json=short'.

7 weeks agosd-event: drop cgroupv1 support in memory pressure event source
Yu Watanabe [Fri, 1 Aug 2025 17:48:34 +0000 (02:48 +0900)] 
sd-event: drop cgroupv1 support in memory pressure event source

7 weeks agocreds-util: fix comment
Yu Watanabe [Wed, 17 Sep 2025 23:26:23 +0000 (08:26 +0900)] 
creds-util: fix comment

Follow-up for 444af9538f465f893c4d6bb5b4a7fad6c17b15a6.

7 weeks agocore/transaction: several cleanups (#38778)
Daan De Meyer [Wed, 17 Sep 2025 19:54:01 +0000 (21:54 +0200)] 
core/transaction: several cleanups (#38778)

7 weeks agomkosi: several cleanups (#38924)
Daan De Meyer [Wed, 17 Sep 2025 19:52:16 +0000 (21:52 +0200)] 
mkosi: several cleanups (#38924)

7 weeks agoudev-config: use secure_getenv() at one more place
Yu Watanabe [Fri, 29 Aug 2025 19:31:25 +0000 (04:31 +0900)] 
udev-config: use secure_getenv() at one more place

Follow-up for b16c6076cb334c9da9602d4bafbf60381d6d630e.

7 weeks agomacro: flip ONCE macro to make log_once() and friend actually log once
Yu Watanabe [Wed, 10 Sep 2025 23:39:17 +0000 (08:39 +0900)] 
macro: flip ONCE macro to make log_once() and friend actually log once

Previously, ONCE is false for the first time, and true for later times,
hence log_once() and log_once_errno() suppress logging in the first call,
rather than later calls.

Fortunately, ONCE macro is only used in log_once() and log_once_errno(),
hence this only fixes spurious logging.

7 weeks agotmpfile-util: introduce new CLEANUP_TMPFILE_AT() API
Lennart Poettering [Thu, 4 Sep 2025 16:24:58 +0000 (18:24 +0200)] 
tmpfile-util: introduce new CLEANUP_TMPFILE_AT() API

This should allow us to get rid of a bunch of "fail:" labels, because we
can clean up tmpfiles relative to some atfd this way.

This only ports over a small number of potential users, but there's more
work to be done.

7 weeks agovarlink: add IDL comments to basic Varlink service interface
Lennart Poettering [Thu, 11 Sep 2025 12:40:56 +0000 (14:40 +0200)] 
varlink: add IDL comments to basic Varlink service interface

7 weeks agocopy: calculate bytes per second while copying, and pass to progress info
Lennart Poettering [Tue, 9 Sep 2025 15:05:05 +0000 (17:05 +0200)] 
copy: calculate bytes per second while copying, and pass to progress info

Also, show it in import-fs/repart.

7 weeks agovmspawn: two small tweaks (#38957)
Luca Boccassi [Wed, 17 Sep 2025 18:46:34 +0000 (19:46 +0100)] 
vmspawn: two small tweaks (#38957)

7 weeks agoboot: Strip boot counter from entry id
Danilo Spinella [Thu, 11 Sep 2025 08:51:27 +0000 (10:51 +0200)] 
boot: Strip boot counter from entry id

When boot counter is found in the boot entry filename, strip it from the
id to match bootctl id.

Fixes #38813.

7 weeks agoExtend test-dlopen-so to also cover cases when built without support
Daan De Meyer [Fri, 23 May 2025 09:49:31 +0000 (11:49 +0200)] 
Extend test-dlopen-so to also cover cases when built without support

Let's make things more consistent and have all dlopen_xxx() functions
return EOPNOTSUPP on failure and verify this behavior in test-dlopen-so.

7 weeks agomeson: fix link-udev-shared option
Luca Boccassi [Wed, 17 Sep 2025 15:13:37 +0000 (16:13 +0100)] 
meson: fix link-udev-shared option

This doesn't work anymore, setting it to false still makes
udev link to libsystemd-shared, as an argument was mistakenly
dropped.

Follow-up for 6350d2dbd97746440b9c8303ddc140ffda568732

7 weeks agopcrextend: add documentation for varlink api
Lennart Poettering [Wed, 17 Sep 2025 07:35:54 +0000 (09:35 +0200)] 
pcrextend: add documentation for varlink api

7 weeks agosd-boot: rename "path" field to "directory"
Lennart Poettering [Tue, 16 Sep 2025 17:01:52 +0000 (19:01 +0200)] 
sd-boot: rename "path" field to "directory"

"path" sounds like a fully qualified complete string referencing some
terminal object. But here it's not like that, the field just stores the
directory the object we actually care about is placed in. Hence let's
change this field to be named "directory", to be less confusing for
readers.

7 weeks agomkosi: support the case /sbin/init is an absolute symbolic link 38924/head
Yu Watanabe [Sun, 14 Sep 2025 03:13:20 +0000 (12:13 +0900)] 
mkosi: support the case /sbin/init is an absolute symbolic link

In that case, the link points to the host file, thus we cannot update
the file.

7 weeks agomkosi: drop man package from global config
Yu Watanabe [Sun, 14 Sep 2025 03:12:04 +0000 (12:12 +0900)] 
mkosi: drop man package from global config

Some distributions does not have man package, but named man-db or so,
and most distribution specific mkosi.conf files already have them.
Let's drop man from the global config.