Repository navigation
Drop another machine-id's Limine entries without rebuilding the UKI - #14446
Open
joshuaswarren wants to merge 3 commits into
Open
joshuaswarren wants to merge 3 commits into
joshuaswarren wants to merge 3 commits into
Conversation
Contributor
|
Owner provisioning refreshes the boot entries whenever limine.conf holds an entry for a machine-id other than this machine's. That refresh starts the menu over from the template and runs limine-update, a full UKI build. On an encrypted Apple Silicon first boot it runs right after the re-key's own UKI build: 9 s on a 14-inch M2 Max (2026-10-06) and on a 13-inch M1 (2026-10-01). When this machine's entry is already there, drop the other machine-ids' OS entries with limine-entry-tool --remove-entry and their ESP directories, and build nothing. A menu without this machine's entry (a factory reset's fresh identity), or an entry tool that fails, still starts over and rebuilds.
A refused directory delete was lost: the entry tool had already removed the entry, the delete ran under an if-guard, and the menu check read only limine.conf, so setup finished with the directory still on the ESP and no later attempt could see it. The directory now goes first and a refused delete returns failure, so the entry stays in the menu and the fallback still names that id.
joshuaswarren
force-pushed
the
fix/limine-refresh-rebased-58a6463
branch
from
October 8, 2026 23:37
ba6711a to
6885c1f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR targets the convergence branch (#14431), because it changes
omarchy-provision-owneras that branch has it. It can move to quattro when #14431 lands.Owner provisioning refreshes the boot entries whenever
limine.confholds an entry for a machine-id other than this machine's. That refresh starts the menu over from the template and runslimine-update, which is a full UKI build. On an encrypted Apple Silicon first boot, it runs right after the re-key's own UKI build. It cost 9 s on a 14-inch M2 Max (2026-10-06) and 9 s on a 13-inch M1 (2026-10-01).When this machine's entry is already in the menu, the refresh now drops the other machine-ids' OS entries with
limine-entry-tool --remove-entry, deletes their ESP directories, and builds nothing. Two cases still start the menu over and rebuild, as before. A menu without this machine's entry (a factory reset's fresh identity) does. An entry tool that fails does too. A second commit makes the log say which of these happened.test/shell.d/limine-foreign-entries-test.shis new, with four cases:luks-rekey-journal-test.shgets one stub line. Its fixture's stale entries come from another identity with no entry for this machine, so the entry tool cannot drop them, and the menu starts over as that test expects. It passes (27 ok, 0 not ok).Checked at d4d6950, rebased on the convergence branch head 58a6463, on a Debian host:
limine-foreign-entries-test.shpasses (4 ok), and so doesluks-rekey-journal-test.shwhen run alone../test/shell, the full suite: 51 of 346 test files fail on this branch and 53 of 345 on 58a6463 alone. Every failing file on the branch also fails on 58a6463, which has two more (flaky). So this change adds no failing file. The failures come from this host, which has no display and no systemd session.luks-rekey-journal-test.shfails inside the full run on both trees, under load, and passes alone.Not measured yet: a first boot with this change. The 9 s is the cost of the build it removes, on the two boots above. A separate mac-pkgs change (omacom/omarchy-mac-pkgs#17) removes the other duplicate build in the re-key. The two are independent.
Update, ba6711a (greptile review): the other machine-id's ESP directory is now deleted before the entry tool runs, and a refused delete falls back to the rebuild instead of looking like a clean refresh.
limine-foreign-entries-test.shhas a fifth case for it (5 ok; the new case fails on d4d6950).luks-rekey-journal-test.shstill passes.