From a05dbb311e9f007b2b7fb40564cdcc4d13f1b97e Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Mon, 5 Feb 2024 15:01:40 -0500 Subject: [PATCH] syslinux: Avoid double `/boot` if bootprefix is enabled This backend always explicitly emitted a `/boot` - but if the global `sysroot.bootprefix` is enabled, then we can rely on the outer code doing it. Luckily this was caught by the unit tests here failing when enabling `sysroot.bootprefix` by default. --- src/libostree/ostree-bootloader-syslinux.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/libostree/ostree-bootloader-syslinux.c b/src/libostree/ostree-bootloader-syslinux.c index 1e71ef23fb..dca0a0070f 100644 --- a/src/libostree/ostree-bootloader-syslinux.c +++ b/src/libostree/ostree-bootloader-syslinux.c @@ -18,6 +18,7 @@ #include "config.h" #include "ostree-bootloader-syslinux.h" +#include "ostree-repo-private.h" #include "ostree-sysroot-private.h" #include "otutil.h" @@ -84,15 +85,16 @@ append_config_from_loader_entries (OstreeBootloaderSyslinux *self, gboolean rege val = ostree_bootconfig_parser_get (config, "linux"); if (!val) return glnx_throw (error, "No \"linux\" key in bootloader config"); - g_ptr_array_add (new_lines, g_strdup_printf ("\tKERNEL /boot%s", val)); + const char *prefix = self->sysroot->repo->enable_bootprefix ? "" : "/boot"; + g_ptr_array_add (new_lines, g_strdup_printf ("\tKERNEL %s%s", prefix, val)); val = ostree_bootconfig_parser_get (config, "initrd"); if (val) - g_ptr_array_add (new_lines, g_strdup_printf ("\tINITRD /boot%s", val)); + g_ptr_array_add (new_lines, g_strdup_printf ("\tINITRD %s%s", prefix, val)); val = ostree_bootconfig_parser_get (config, "devicetree"); if (val) - g_ptr_array_add (new_lines, g_strdup_printf ("\tDEVICETREE /boot%s", val)); + g_ptr_array_add (new_lines, g_strdup_printf ("\tDEVICETREE %s%s", prefix, val)); val = ostree_bootconfig_parser_get (config, "options"); if (val)