Merge pull request #3290 from cgwalters/include-grub-stderr

grub2: Show output when run in systemd by default
This commit is contained in:
Eric Curtin
2024-09-03 15:36:26 +01:00
committed by GitHub
2 changed files with 13 additions and 4 deletions

View File

@ -22,9 +22,9 @@
#include "otutil.h" #include "otutil.h"
#include <gio/gfiledescriptorbased.h> #include <gio/gfiledescriptorbased.h>
#include <gio/gunixoutputstream.h> #include <gio/gunixoutputstream.h>
#include <sys/mount.h> #include <stdbool.h>
#include <string.h> #include <string.h>
#include <sys/mount.h>
// Written by bootupd // Written by bootupd
#define BOOTUPD_CONFIG "boot/bootupd-state.json" #define BOOTUPD_CONFIG "boot/bootupd-state.json"
@ -419,7 +419,15 @@ _ostree_bootloader_grub2_write_config (OstreeBootloader *bootloader, int bootver
grub_argv[2] = gs_file_get_path_cached (new_config_path); grub_argv[2] = gs_file_get_path_cached (new_config_path);
GSpawnFlags grub_spawnflags = G_SPAWN_SEARCH_PATH; GSpawnFlags grub_spawnflags = G_SPAWN_SEARCH_PATH;
if (!g_getenv ("OSTREE_DEBUG_GRUB2")) const bool running_in_systemd = getenv ("INVOCATION_ID") != NULL;
const bool debug_grub2 = g_getenv ("OSTREE_DEBUG_GRUB2");
/* If we're running in systemd (as part of `ostree-finalize-staged.service`)
* then we do want to gather output from the binary so that if something fails
* we can debug it.
*
* We also have an opt-in variable to display errors.
*/
if (!(running_in_systemd || debug_grub2))
grub_spawnflags |= G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL; grub_spawnflags |= G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL;
cdata.root = grub2_mkconfig_chroot; cdata.root = grub2_mkconfig_chroot;
g_autofree char *bootversion_str = g_strdup_printf ("%u", (guint)bootversion); g_autofree char *bootversion_str = g_strdup_printf ("%u", (guint)bootversion);

View File

@ -820,7 +820,8 @@ _try_clone_from_payload_link (OstreeRepo *self, OstreeRepo *dest_repo, const cha
loose_path_buf, (unsigned long long)expected_len, loose_path_buf, (unsigned long long)expected_len,
(unsigned long long)size); (unsigned long long)size);
snprintf (target_checksum, sizeof (target_checksum), "%.2s%.62s", target_buf + _OSTREE_PAYLOAD_LINK_PREFIX_LEN, snprintf (target_checksum, sizeof (target_checksum), "%.2s%.62s",
target_buf + _OSTREE_PAYLOAD_LINK_PREFIX_LEN,
target_buf + _OSTREE_PAYLOAD_LINK_PREFIX_LEN + 3); target_buf + _OSTREE_PAYLOAD_LINK_PREFIX_LEN + 3);
_ostree_loose_path (loose_path_target_buf, target_checksum, OSTREE_OBJECT_TYPE_FILE, _ostree_loose_path (loose_path_target_buf, target_checksum, OSTREE_OBJECT_TYPE_FILE,