| 29 Jun 2026 |
K900 | I need sleep | 21:41:43 |
| 30 Jun 2026 |
K900 | OK great | 09:37:34 |
K900 | Building 260.2 in a nix-shell bootctl update also fails | 09:37:52 |
ghpzin | As mentioned before I am pretty sure it is just systemd-boot-builer picking "fallback" file as installed_version. The easiest is just a 1 line fix for filtering it out from bootctl status output before matching, ie:
--- a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
+++ b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
@@ -488,6 +488,8 @@
stdout=subprocess.PIPE,
).stdout
+ installed_out = "\n".join([line for line in installed_out.splitlines() if "fallback" not in line])
+
# See status_binaries() in systemd bootctl.c for code which generates this
# Matches
# Available Boot Loaders on ESP:
| 09:43:14 |
K900 | No, it's not | 09:48:40 |
K900 | Actually wait | 09:49:25 |
K900 | Ugh | 09:49:26 |
K900 | I see the problem | 09:49:29 |
K900 | It is that but not in the way I thought | 09:49:41 |
K900 | We just didn't call bootctl update if our own update check succeeded | 09:49:52 |
K900 | Which is honestly kinda bad | 09:49:57 |
K900 | Yeah OK this is so stupid | 09:51:15 |
K900 | Ughhhhh the varlink interface works | 09:53:22 |
K900 | But we can't rely on it | 09:53:24 |
K900 | ❯ sudo varlinkctl call /run/systemd/io.systemd.BootControl io.systemd.BootControl.Install '{"operation":"update"}'
Method call io.systemd.BootControl.Install() failed: Stale file handle
{
"origin" : "linux",
"errno" : 116,
"errnoName" : "ESTALE"
}
| 09:54:25 |
K900 | ESTALE here means "nothing to do" | 09:54:34 |
K900 | I wonder if it makes sense to just do varlink | 09:56:23 |
K900 | And fall back to a direct bootctl invocation | 09:56:30 |
K900 | The only situation it should matter is in a chroot | 09:57:03 |
K900 | ElvishJerricco need your thonk | 09:59:03 |
K900 | Also anyone else want to bash their head against paperless | 10:00:16 |
K900 | Or should I just rip a bisect | 10:00:20 |
K900 | And get back to you in 3-5 business days | 10:00:27 |
guillaume | I can start a bisect | 10:21:24 |
K900 | Ahead of you | 10:21:43 |
K900 |  Download Unfortunately, | 10:21:59 |
cSanthiago | I don't wanna bother, I see you are doing a lot of work on this merge, this is the first one I am trying to follow up... I am failing to understand how you pick the packages to fix.
I try to look on asnible, but at the end it looks like is failing just becouse one dependancy in queued, and ansible is missing it.
If it is a complex answer I can ask again after the merge is done.
| 10:40:36 |
K900 | The answer is mostly "things that break a lot of other things" | 10:41:04 |
K900 | And also, realistically, "things we personally use" | 10:41:13 |
cSanthiago | (L)
| 10:41:30 |