Commit Graph
100 Commits
Author SHA1 Message Date
Yu Watanabe 802906bbbe po: update Japanese translation 2026-03-06 07:06:59 +09:00
Yu Watanabe 2f32c49a18 network: slightly reword polkit message 2026-03-06 04:43:30 +09:00
Yu Watanabe 8903e6b5f7 tree-wide: suppress misc-use-internal-linkage warnings
Suppress warnings like the following from clang tidy:
```
../src/boot/addon.c:11:19: error: function 'efi_main' can be made static to enforce internal linkage [misc-use-internal-linkage,-warnings-as-errors]
   11 | EFIAPI EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *system_table);
      |                   ^
```

Some warnings are suppressed simply by setting comments to ignore the warning,
some are by making global variables static, or include a suitable header.
2026-03-05 20:23:24 +01:00
Yu Watanabe 535c6ef393 po: update Japanese translations 2026-03-06 03:11:39 +09:00
Yu Watanabe 3e5a865c3f gitignore: ignore new default mkosi tools directories
The default place has been changed since
https://github.com/systemd/mkosi/commit/e9abfab744340dd2f608b589a9252a3e53b071c3
2026-03-05 18:12:09 +00:00
Yu Watanabe 43116c5662 tree-wide: use DIGITS and friends 2026-03-03 22:18:26 +01:00
Yu Watanabe 8e82ea1468 udev/scsi: use hexchar() 2026-03-03 22:18:26 +01:00
Yu Watanabe 950eabc791 TODO: fix typo 2026-03-03 22:11:44 +09:00
Yu Watanabe 6e59d22380 udev/varlink: ignore polkit related field
Follow-up for da7374b2ae.
2026-03-02 19:24:40 +01:00
Yu Watanabe 4b4eba1666 tree-wide: use _contains() rather than _get()/_find() 2026-03-02 23:10:22 +09:00
Yu Watanabe 503442817a login: fix two io.systemd.Login Varlink IDL issues (#40857)
Add missing NoSessionPIDFD error to the interface definition; the error
is emitted by vl_method_create_session() when the session leader process
does not have a pidfd available, but was never declared in the IDL.

Drop SD_JSON_MANDATORY from the ReleaseSession.Id dispatch entry so that
omitting the field (which the IDL allows via SD_VARLINK_NULLABLE)
resolves to the caller's own session via session_is_self(NULL).
2026-03-02 23:09:19 +09:00
Yu Watanabe 5ae3bb09c6 mountpoint-util: add overlay check to fstype_is_blockdev_backed() and simplify fstype_is_api_vfs() (#40866) 2026-03-02 13:15:14 +09:00
Yu Watanabe 3448e05150 core/exec-invoke: correct size for dont_close array in close_remaining_fds() (#40867) 2026-03-02 13:05:42 +09:00
Yu Watanabe 7de42b787d cryptsetup: fix 'tpm2-primary-alg' information in 'cryptsetup luksDump' (#40872)
It was noticed that cryptsetup luksDump outputs

  tpm2-primary-alg: ecc

regardless of the actual primary key type. Namely, in the situation when
RSA SRK is passed to 'systemd-cryptenroll', the output is incorrect and
misleading. Turns out 'tpm2-primary-alg' is not currently used for
unsealing as 'tpm2_srk' object has it in its properties but the
misleading information problem stays.

Fix the issue with a two-fold fix:
- Put the SRK primary alg type to the JSON token so 'cryptsetup
luksDump' has a chance to actually print the right information without
the need to inspect SRK.
- Avoid printing 'tpm2-primary-alg' when it is unset in the JSON as the
default 'ECC' may not match the reality.

No real functional change for the sealing/unsealing expected.
2026-03-02 12:40:40 +09:00
Yu Watanabe 2900f04c82 network: do not create state file for removed interface
Fixes #40817.
2026-02-26 08:50:50 +01:00
Yu Watanabe ab2bc40dcd bash-completion/systemctl: add enqueue-marked-jobs and deprecate --marked
Follow-up for #40810.
2026-02-24 17:53:53 +00:00
Yu Watanabe 93e1b0f328 man: coredump: KeepFree/MaxUse clarification of default values (#40796)
On sd-coredump for both `MaxUse` and `KeepFree` defaults has a caveat,
it may set it differently if not explicit configured.
On `MaxUse` it'll cap to 4GiB as seem
[here](https://github.com/systemd/systemd/blob/d39b10371964d048a3c5d7dbf84552ecdba66bbe/src/coredump/coredump-vacuum.c#L82).
Similar for `KeepFree`
[here](https://github.com/systemd/systemd/blob/d39b10371964d048a3c5d7dbf84552ecdba66bbe/src/coredump/coredump-vacuum.c#L98)

Also show that `MaxUse` takes precedence.

Making this clear at the man page
2026-02-25 01:35:38 +09:00
Yu Watanabe 20ce80436e udev: hwdb: replace ID_INPUT_JOYSTICK_INTEGRATION (#40761)
Could ask to Bastien Nocera who originally commited the joysticks hwdb
integration
https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/1429#note_3338386
and stated that was for use in iio-sensor but later anything was done.

As the variable was never used replace it with the new variable actually
in the process to be use in libinput. Even more at least some of the
idea that was planed for ID_INPUT_JOYSTICK_INTEGRATION could be done in
libinput.

Actually ID_INPUT_JOYSTICK_INTEGRATION was never used anywhere, replace
it with ID_INTEGRATION.

Follow up: a4381cae8b.
2026-02-25 00:13:15 +09:00
Yu Watanabe da7374b2ae varlink-idl: allow to pass polkit arguments to io.systemd.service.Reload()
Then, varlink interfaces with unprivileged access can be implement the
method.
2026-02-24 23:59:08 +09:00
Yu Watanabe 27f1bf5cde network: rename dispatch_interface() and make it take flags
No functional change. Just refactoring and preparation for later change.
2026-02-24 23:57:15 +09:00
Yu Watanabe b6919c737a network: rename io.systemd.Network.LinkUp()/LinkDown()
Then, this also moves their implementations to networkd-link-varlink.c.
2026-02-24 23:56:20 +09:00
Yu Watanabe c418543a65 include: update kernel headers from v7.0-rc1
In v7.0-rc1, the kernel introduces typelimits.h to define __KERNEL_INT_MIN/_MAX.
Also, NULL_FS_MAGIC has been introduced for immutable rootfs..
2026-02-24 23:08:52 +09:00
Yu Watanabe fb0078ae69 test: test io.systemd.JournalAccess
Follow-up for a109189fab.
2026-02-24 12:59:38 +00:00
Yu Watanabe 3cfb169988 errno-list: filter out EFSBADCRC and EFSCORRUPTED
These are introduced in kernel v7.0.
2026-02-24 12:58:09 +00:00
Yu Watanabe aaadf3e907 udev/dump: also dump current tags
The "TAG" token in udev rules handles the current tags.
Let's also show the current tags.
2026-02-23 05:52:49 +09:00
Yu Watanabe e0a2369dd1 sd-device: do not try to remove previous tag indexes
The removed code in device_tag_index() in fact does nothing,
as sd_device.all_tags is never cleared. Moreover, not only the code
is meaningless, but it is theoretically/logically wrong, as the symlinks
in /run/udev/tags/ should be 'sticky', hence we should even not try to
remove them.
2026-02-23 05:46:42 +09:00
Yu Watanabe fc03d200c7 sd-device: do not clear sd_device.all_tags even on TAG="hoge"
The current tag concept has been introduced by
e77b146f82 (v247) to make symlinks in
/run/udev/tags/ are 'sticky'.

However, when TAG= (rather than TAG+=) is specified, then the tags
assigned in the previous events were also cleared.
This fixes the issue and now symlinks in /run/udev/tags/ are really
'sticky'.

Fortunately, TAG= is mostly unused. So, the issue should not affect
and the fix should not change anything on almost all systems.
2026-02-23 05:46:42 +09:00
Yu Watanabe 1c867dc71a sd-device: move copy_all_tags() from udev
No functional change, preparation for the next commit.
2026-02-23 05:46:42 +09:00
Yu Watanabe b65467b647 sd-device: shorten code a bit 2026-02-23 05:46:42 +09:00
Yu Watanabe e17ef43f9d man/report: fix typo
Follow-up for e83cbc9372.
2026-02-21 03:00:51 +09:00
Yu Watanabe c871afd311 Several fixlets for issues found by Coverity (#40765) 2026-02-20 19:13:37 +09:00
Yu Watanabe ff3b44e780 Various improvements (#40759) 2026-02-20 16:31:38 +09:00
Yu Watanabe ecf9f81af4 mstack: coding style cleanups 2026-02-20 16:22:00 +09:00
Yu Watanabe b78db85bca mstack: fix resource leak on failure path
This makes the mstack_load() requires 'ret', as clearing the loaded
mstack without use is meaningless. All callers already pass non-NULL for
the argument.

Follow-up for 8343032a86.
Fixes CID#1645105.
2026-02-20 16:21:48 +09:00
Yu Watanabe 298fc56641 import: fix NULL pointer dereference
Follow-up for a9f6ba0496.
Fixes CID#1645106.
2026-02-20 16:12:36 +09:00
Yu Watanabe 551227e3a0 Python modernization followups (#40755) 2026-02-20 01:33:07 +09:00
Yu Watanabe e819c31c05 NEWS: move and extend entry for PTP device permission
Follow-up for 1e6854e112.
2026-02-20 01:25:25 +09:00
Yu Watanabe 5329f4bf76 man: fix typo
Follow-up for 6b22ac31af.
2026-02-20 01:18:59 +09:00
Yu Watanabe e94c410e51 man: fix typo
Follow-up for eb581ff6d9.
2026-02-20 01:18:54 +09:00
Yu Watanabe fcf5f1db94 mstack: fix typo
Follow-up for 8343032a86.
2026-02-20 01:14:30 +09:00
Yu Watanabe 5d01b27ffc import: fix typo
Follow-up for a9f6ba0496.
2026-02-20 01:13:02 +09:00
Yu Watanabe 9bc3c2e54a TODO: fix typo
Follow-up for 3bbada87e2.
2026-02-20 01:11:30 +09:00
Yu Watanabe dbc83d6353 NEWS: mention python requirement bump 2026-02-19 22:23:04 +09:00
Yu Watanabe d0e1f58200 metrics: add networkd related metrics (#40619)
This adds support for networkd related metrics. The output looks like this:
```
{
	"name" : "io.systemd.Network.addressState",
	"object" : "lo",
	"value" : "off"
}
{
	"name" : "io.systemd.Network.adminState",
	"object" : "lo",
	"value" : "unmanaged"
}
{
	"name" : "io.systemd.Network.carrierState",
	"object" : "lo",
	"value" : "carrier"
}
{
	"name" : "io.systemd.Network.ipv4AddressState",
	"object" : "lo",
	"value" : "off"
}
{
	"name" : "io.systemd.Network.ipv6AddressState",
	"object" : "lo",
	"value" : "off"
}
{
	"name" : "io.systemd.Network.managedInterfaces",
	"value" : 0
}
{
	"name" : "io.systemd.Network.operationalState",
	"object" : "lo",
	"value" : "carrier"
}
```
2026-02-18 19:26:55 +09:00
Yu Watanabe ef6c8c79dc Revert "check-os-release.py compatible with Python < 3.8"
This reverts commit ce0a056abc.
2026-02-18 18:47:15 +09:00
Yu Watanabe 08719d0e78 Revert "tools: make update-dbus-docs compatible with Python 3.7"
This reverts commit 668b3a42fe.

Now we require Python 3.9 or newer.
2026-02-18 18:47:15 +09:00
Yu Watanabe 7ff27c8012 Revert "generate-bpf-delegate-configs: fix compatibility with Python 3.7"
This reverts commit dee77ac201.

Now we require Python 3.9 or newer.
2026-02-18 18:47:15 +09:00
Yu Watanabe 3aaa9d9882 Revert "meson: fix compatibility with Python 3.7"
This reverts commit 2793d6acf0.

Now we require Python 3.9 or newer.
2026-02-18 18:47:15 +09:00
Yu Watanabe 582d499e32 meson: ukify unconditionally requires pefile module
Follow-up for 3fc5eed470.
2026-02-18 18:47:15 +09:00
Yu Watanabe 69f75cd896 network: use higher log level when we cannot bind resolve hook varlink socket 2026-02-18 17:57:32 +09:00
Yu Watanabe 6109cf8b61 meson,test: sort unit files 2026-02-18 17:57:17 +09:00
Yu Watanabe 43c4ecc951 bootspec: add missing else
Otherwise, OOM error will never checked, and the "preferred" setting
always emits warning that the field is unknown.

Follow-up for 450e0dce02.
Fixes CID#1645063.
2026-02-18 06:37:44 +01:00
Yu Watanabe d8da141348 README: mention about musl requirements 2026-02-18 11:04:14 +09:00
Yu Watanabe 78a61335e3 boot: Fix UKI boot for kernels with non-zero ImageBase (#40429)
The current code incorrectly subtracts ImageBase from section
VirtualAddress values when loading sections into memory. This is based
on a misunderstanding of the PE specification.

VirtualAddress in section headers is the address of the first byte of
the section relative to the image base when the section is loaded into
memory. In other words, VirtualAddress is already an RVA measured from
the image base, it is definitely NOT an absolute address that needs to
be adjusted.

So when loading a PE image into a newly allocated buffer, sections
should be copied to buffer + VirtualAddress, regardless of what
ImageBase says. The ImageBase field merely indicates the *preferred*
load address, it does not affect how section RVAs are interpreted.

This happens to not cause issues when ImageBase was 0 (since
VirtualAddress - 0 = VirtualAddress), which is why this bug went
undetected on modern kernels. However, it fails with kernels that have
non-zero ImageBase values.

So let's remove the nonsensical VirtualAddress < ImageBase check, and
remove the ImageBase subtractions from section loading offsets. This
lets all kernel UKIs work properly again.

Fixes: #40342
2026-02-18 03:27:41 +09:00
Yu Watanabe a5e6f4f81d include: update kernel headers from v6.19 2026-02-18 02:46:05 +09:00
Yu Watanabe b96f417ea6 xaccess: Rework from boolean into a list of tags (#40645)
Fixes: #40634
2026-02-18 01:24:59 +09:00
Yu Watanabe b11e07c607 man: fix typo 2026-02-18 01:00:04 +09:00
Yu Watanabe 1f8fefd7de memstream-util: fix doubled %m
Follow-up for abe72100cf.
2026-02-18 00:47:25 +09:00
Yu Watanabe 5004500c4b NEWS: mention -Dcompat-sysv-interfaces=BOOL meson option 2026-02-18 00:37:47 +09:00
Yu Watanabe 8c648adeae NEWS: -Dlibiptc= meson option has been deprecated since v259 2026-02-18 00:37:47 +09:00
Yu Watanabe 5d26cb9c1b NEWS: fix typo 2026-02-18 00:20:55 +09:00
Yu Watanabe ff33e755e8 Fixes & improvments for using homed-luks on 4k disks (#35776)
Mostly consists of fixes to 

- use the same sector_size as the fdisk context we are using, when
converting between sectors returned by libfdisk to bytes. Fixes #30394 ,
Fixes #30393
- Use the explicit sector size if specified in the home record when are
probing the image file using libblkid. Fixes #30393

Also contains some other improvements with using physical block devices.

- Automatically probe sector size of physical block device, if user does
not pass luks-sector-size explicitly.
- Assign partitions to 1 MiB boundaries, as it is the standard practice
followed by all tools, fdisk, gptfdisk, gnu parted etc.
- Avoid stacking of loop device on top of physical block device in
home_create_luks as it leads to degradation of discard operations, and
mkfs getting stuck.
2026-02-17 23:23:23 +09:00
Yu Watanabe cfd544af86 Sensor cleanup 1st pass (#40675)
This is a general cleanup of the sensors hwdb file divides into several
commits per brand.

I have merged the devices that use the same matrices, clean up a little
some clear dmi matches, and apply a inline comment with the device where
is certainly very clear way to display.

My idea is to do more cleanup steps but actually will require more
effort to achieve complete dmis, I can do it with little time, and some
consensus for comment styling.

About the comment styling actually I thing we could follow two rules at
the same time: inline comment when the dmi match is short and there is
no additional many information than just the model, and the other one
comment above the dmi match when is too long or there are need to add
more info.
2026-02-17 22:20:38 +09:00
Yu Watanabe 4fae85faea Several fixlets for issues found by Coverity (#40707) 2026-02-17 18:26:46 +09:00
Yu Watanabe 7a6b6c4d07 network/wwan: fix memleak in failure path
Fixes CID#1645018.
2026-02-17 17:02:10 +09:00
Yu Watanabe 1a416a47e7 network/wwan: add missing error check
Fixes CID#1645015.
2026-02-17 17:01:00 +09:00
Yu Watanabe 2e8cfb7cef sd-bus: use bus_error_message() at several more places
For CID#1645014, CID#1645016, and CID#1645017.
2026-02-17 17:00:42 +09:00
Yu Watanabe ce6ea42b69 bus-polkit: add one more assertion
For CID#1645013.
2026-02-17 16:39:38 +09:00
Yu Watanabe d9e078fe68 oomd: Fix Killed signal reason being lost (#40689)
Emitting "oom" doesn't mesh with the org.freedesktop.oom1.Manager
Killed() API contract, which defines "memory-used" and "memory-pressure"
as possible reasons. Consumers that key off reason thus will either lose
policy attribution or may reject the unknown value completely.

Plumb the reason through so it is visible to consumers.
2026-02-17 14:53:46 +09:00
Yu Watanabe 710742270b report: enforce metric prefix (#40647)
Addressing
> we should enforce that metrics ids begin with the varlink service name

from #40633
2026-02-17 06:47:50 +09:00
Yu Watanabe 5e0c1f2e1b backlight: also change clamp percentage on ID_BACKLIGHT_CLAMP/ID_LEDS_CLAMP=yes
Follow-up for 4ed1e2ea17.
2026-02-16 21:24:55 +09:00
Yu Watanabe ad3e4af9a7 networkctl: use varlink method to bring up/down interfaces (#40693)
Closes #38538.
Closes #40017.
2026-02-16 20:35:29 +09:00
Yu Watanabe ed6a2eaa31 ask-password-api: several modernizations for ask_password_agent(); use CLEANUP_TMPFILE_AT more (#40631) 2026-02-16 20:07:32 +09:00
Yu Watanabe 067758a3be networkctl: use varlink methods to bring up/down interfaces
Then,
- polkit authentication can be used,
- dynamic configuration engine can be safely stopped before bringing
  down interfaces.

Fixes #38538.
2026-02-16 18:37:17 +09:00
Yu Watanabe 314f93d9d3 networkctl: merge three functions for calling D-Bus methods 2026-02-16 18:37:17 +09:00
Yu Watanabe 63fd8c9b9e networkctl: use parse_interfaces() at one more place 2026-02-16 18:37:17 +09:00
Yu Watanabe 4610a4dc4c networkctl: split out parse_interfaces()
Also, this makes interfaces stored in OrderedSet rather than Set,
so interfaces becomes up/down in the specified order.

This also makes when multiple interfaces are specified, networkctl tries
to up/down all specfied interfaces even if some of them are failed.

Fixes #40017.
2026-02-16 18:37:17 +09:00
Yu Watanabe ba08fa3230 shared/metrics: add two more assertions 2026-02-16 09:44:58 +01:00
Yu Watanabe 618952f07e CODING_STYLE: fix typo
Follow-up for 83b4a5bb3d.
2026-02-16 14:35:21 +09:00
Yu Watanabe 06dca3f629 man: fix typo
Follow-up for 91b3620b07.
2026-02-16 14:34:04 +09:00
Yu Watanabe c33b112cac sd-varlink: fix typo
Follow-up for c0696f1f5d.
2026-02-16 14:32:15 +09:00
Yu Watanabe 5ac9a481cd network: fix typo
Follow-up for f8a4c3d375.
2026-02-16 14:30:38 +09:00
Yu Watanabe 3be36e6d64 NEWS: fix typo
Follow-up for 4ed1e2ea17.
2026-02-16 14:28:55 +09:00
Yu Watanabe a48145203c network: use voffsetof() at more places 2026-02-16 14:28:52 +09:00
Yu Watanabe 345208a49b udev: guess if usb devices are internal external (#40649)
Actually we are defining databases to determine when a usb device is
inherent part of the system or if it's a external device.

Let's use the removable attribute of the port where it is connected to
say that. That gives us the ability to not rely on a particular vendor
only does external devices or to not having the need to be quirking
input subsystem for that purpose that will become unreliable as more and
more internal devices are connected over usb instead over ps2 or i2c
buses. Eg.
https://gitlab.freedesktop.org/libinput/libinput/-/commit/02b495e79022e64514015e1a3dea32997035dd4f?merge_request_iid=1389

Actually this has been seen as reliable in a small set of device from
normal laptops, to detachable ones. The need to check maxchild is 0 is
for detachable devices, pogo pin usbs are fixed, while we attach the
keyboard|touchpad dock the input devices tend to be directly connected
to that port and if the dock has more usbs tend to be a hub that then
exposes removable as unknow. If we don't set maxchild 0 we will not only
guess that the keyboard and touchpad are internal but also incorrectly
other input devices like mice connected to the dock's usb ports.

I have use a very generic name like INTEGRATION because is not actually
used for any other thing and is used to determine not only over usb bus
but for acpi, pci, platform actually.

Also a remap to actual libinput variables is done for compatibility
purposes. if it's possible to have only the INTEGRATION variable instead
multiple ones will be done in the future but is actually unclear.

This can also be used for example to achieve an actual feature that we
lack in linux, when a device with accelerometers and cameras is rotated
the video output is not, this tag the own device cameras as internal
while external ones as external to be able to only do that for the
internal ones.

Note that this has nothing to do with the removable attribute found in
usb storage devices where it's values can be 0 or 1. There is no
conflict at all because the removable attribute we check is specifically
the one found in usb port ones.
2026-02-16 13:25:35 +09:00
Yu Watanabe 1b1799e9ba timesync: actually disables built-in fallback NTP servers when an empty string is specified
Follow-up for 3745770ae4.
Fixes #40621.
2026-02-16 09:53:03 +09:00
Yu Watanabe b0ca2ef264 timesync: return earlier when an empty string is specified 2026-02-16 09:51:36 +09:00
Yu Watanabe 1bb9306f1e timesync: rename have_fallbacks -> fallback_set 2026-02-16 09:50:46 +09:00
Yu Watanabe 6d0e8271b4 boot: fix buffer alignment when doing block I/O (#40465)
UEFI Block I/O Protocol has `Media->IoAlign` field dictating the minimum
alignment for I/O buffer. It's quite surprising this has been lingering
here unnoticed for years, seems like most UEFI implementations have
small or no alignment requirements. U-Boot is not the case here, and
requires at least 512 byte alignment, hence attempt to read GPT
partition table fail and in effect systemd-boot can not find XBOOTLDR
partition.

These patches allow to boot from XBOOTLDR partition on U-Boot - tested
with latest systemd revision and U-Boot master
(`8de6e8f8a076d2c9b6d38d8563db135c167077ec`) on x64 and ARM32, of which
both are failing without the patch.

Also fixes Bitlocker probing logic, which is the only other place where
raw block I/O is used, however this is untested.
2026-02-16 09:10:01 +09:00
Yu Watanabe 009a170d2f mkosi: Update to latest and two speed improvements (#40678) 2026-02-14 23:08:00 +09:00
Yu Watanabe a1c8e5e338 Allow non-system users/groups in networkd and udevd again (#40612) 2026-02-14 05:41:01 +09:00
Yu Watanabe da86da21e9 Fixes for option parsing (#40641)
Preparatory work split out of #40624.
2026-02-14 04:58:50 +09:00
Yu Watanabe 7577bb4c08 udevadm: do not explicitly set white color
Otherwise, output on black-on-white terminals is not visible.

Follow-up for 13005c8f2c.
Fixes #40629.
2026-02-13 16:37:16 +01:00
Yu Watanabe 559dabbbde Two portabled fixes (#40664) 2026-02-13 16:53:29 +09:00
Yu Watanabe 356cc4a1c3 kmod-setup: also load other vsock transport modules
Fixes #40161.
2026-02-13 16:14:54 +09:00
Yu Watanabe 6d36e5fae6 kmod-setup: fix loading virtio related drivers
It seems the device with modalias e.g. virtio:d00000013v, only appears
after the relevant module is loaded. So, we cannot use the string to
determine if we should load the module.

Fixes #40503.
2026-02-13 16:14:54 +09:00
Yu Watanabe 07f147d544 bootctl: do not use the EFI path as XBOOTLDR path
When running in a container, EFI and XBOOTLDR partition check is
relaxed, hence /boot may be recognized as both EFI and XBOOTLDR
partition.

Before:
```
$ run0 systemd-nspawn -xD / --private-network --bind=/sys/firmware/efi/efivars --bind=/boot -E SYSTEMD_LOG_LEVEL=debug -- build/bootctl --variables=yes --no-pager -x
Failed to check file system type of "/efi": No such file or directory
Using EFI System Partition at /boot.
Using XBOOTLDR partition at /boot as $BOOT.
/boot
```

After:
```
$ run0 systemd-nspawn -xD / --private-network --bind=/sys/firmware/efi/efivars --bind=/boot -E SYSTEMD_LOG_LEVEL=debug -- build/bootctl --variables=yes -x
Failed to check file system type of "/efi": No such file or directory
Using EFI System Partition at /boot.
Didn't find an XBOOTLDR partition, using the ESP as $BOOT.
/boot
```
2026-02-13 16:11:33 +09:00
Yu Watanabe 9bc1336abd bootctl: do not show an empty () for ESP partition
Before:
```
$ run0 systemd-nspawn -xD / --private-network --bind=/sys/firmware/efi/efivars --bind=/boot -- build/bootctl --variables=yes --no-pager
(snip)
Boot Loader Entry Locations:
          ESP: /boot ()
       config: /boot//loader/loader.conf
     XBOOTLDR: /boot ($BOOT)
        token: fedora
(snip)
```

After:
```
run0 systemd-nspawn -xD / --private-network --bind=/sys/firmware/efi/efivars --bind=/boot -- build/bootctl --variables=yes --no-pager
(snip)
Boot Loader Entry Locations:
          ESP: /boot
       config: /boot//loader/loader.conf
     XBOOTLDR: /boot ($BOOT)
        token: fedora
(snip)
```

This also moves spurious position of new line in each output.
2026-02-13 16:11:33 +09:00
Yu Watanabe 340c82c454 bootctl: make list command take --variables= option 2026-02-13 16:11:33 +09:00
Yu Watanabe 865f0fe28f bootctl: make status command take --variables= option 2026-02-13 16:11:33 +09:00