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
commit fbb1cc7e38
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 4 deletions

View File

@ -22,9 +22,9 @@
#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"
@ -419,7 +419,15 @@ _ostree_bootloader_grub2_write_config (OstreeBootloader *bootloader, int bootver
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);

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,
(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,