core/swap: /sbin -> /usr/sbin

I noticed in our NixOS packaging that we were working around the fact
that core/swap.c looks for swapon and swapoff in /sbin

Lets make it configurable just like all the other util-linux binaries
through meson and make it default to /usr/sbin/{swapon,swapoff}

This way mounts work on a systemd without the /sbin -> /usr/sbin
compatibility symlink.  (And as a side-effect has NixOS be able
to have it in /nix/store too like the other util-linux tools).
This commit is contained in:
Arian van Putten
2025-08-24 13:59:22 +02:00
parent 46a688c559
commit ef8517f024
3 changed files with 6 additions and 2 deletions
+2 -2
View File
@@ -781,7 +781,7 @@ static void swap_enter_activating(Swap *s) {
}
}
r = exec_command_set(s->control_command, "/sbin/swapon", "--fixpgsz", NULL);
r = exec_command_set(s->control_command, SWAPON, "--fixpgsz", NULL);
if (r < 0) {
log_unit_warning_errno(UNIT(s), r, "Failed to initialize swapon command line: %m");
goto fail;
@@ -826,7 +826,7 @@ static void swap_enter_deactivating(Swap *s) {
s->control_command = s->exec_command + SWAP_EXEC_DEACTIVATE;
r = exec_command_set(s->control_command,
"/sbin/swapoff",
SWAPOFF,
s->what,
NULL);
if (r < 0) {