#include "otutil.h"
#include <gio/gfiledescriptorbased.h>
#include <gio/gunixoutputstream.h>
-#include <sys/mount.h>
-
+#include <stdbool.h>
#include <string.h>
+#include <sys/mount.h>
// Written by bootupd
#define BOOTUPD_CONFIG "boot/bootupd-state.json"
grub_argv[2] = gs_file_get_path_cached (new_config_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;
cdata.root = grub2_mkconfig_chroot;
g_autofree char *bootversion_str = g_strdup_printf ("%u", (guint)bootversion);
loose_path_buf, (unsigned long long)expected_len,
(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);
_ostree_loose_path (loose_path_target_buf, target_checksum, OSTREE_OBJECT_TYPE_FILE,