diff --git a/.gitignore b/.gitignore index 5846fd2..e62ea8e 100644 --- a/.gitignore +++ b/.gitignore @@ -104,3 +104,4 @@ /libostree-2024.2.tar.xz /libostree-2024.3.tar.xz /libostree-2024.4.tar.xz +/libostree-2024.5.tar.xz diff --git a/0001-bootloader-grub2-Don-t-do-anything-if-we-have-static.patch b/0001-bootloader-grub2-Don-t-do-anything-if-we-have-static.patch deleted file mode 100644 index b26cfc1..0000000 --- a/0001-bootloader-grub2-Don-t-do-anything-if-we-have-static.patch +++ /dev/null @@ -1,105 +0,0 @@ -From e47b37096343efa3bea8295f3f44c4dc90cc04e2 Mon Sep 17 00:00:00 2001 -From: Colin Walters -Date: Tue, 27 Feb 2024 13:14:16 -0500 -Subject: [PATCH] bootloader/grub2: Don't do anything if we have static configs - -This builds on top of https://github.com/coreos/bootupd/pull/609/commits/fa9924e4fe403c3751392c041cd98614a2cc3611 -(But in a very hacky way because we don't currently link to a JSON library) - -Basically, bootupd supports injecting static configs, and this -is the currently least hacky way for us to detect this and understand -that we shouldn't try to run `grub2-mkconfig`. - -A further patch I'd like to do here is also change the probing -logic to gracefully no-op if `grub2-mkconfig` doesn't exist, -but that has a bit more risk and involvement. ---- - src/libostree/ostree-bootloader-grub2.c | 21 ++++++++++++ - tests/kolainst/destructive/bootupd-static.sh | 36 ++++++++++++++++++++ - 2 files changed, 57 insertions(+) - create mode 100755 tests/kolainst/destructive/bootupd-static.sh - -diff --git a/src/libostree/ostree-bootloader-grub2.c b/src/libostree/ostree-bootloader-grub2.c -index e1ee7868..cbe7605d 100644 ---- a/src/libostree/ostree-bootloader-grub2.c -+++ b/src/libostree/ostree-bootloader-grub2.c -@@ -26,6 +26,11 @@ - - #include - -+// Written by bootupd -+#define BOOTUPD_CONFIG "boot/bootupd-state.json" -+// Horrible hack, to avoid including a JSON parser we just grep for this -+#define BOOTUPD_CONFIG_STATIC_JSON_FRAGMENT "\"static-configs\"" -+ - /* Maintain backwards compatibility with legacy GRUB - * installations that might rely on the -16 suffix - * for real-mode booting. -@@ -75,6 +80,22 @@ _ostree_bootloader_grub2_query (OstreeBootloader *bootloader, gboolean *out_is_a - { - OstreeBootloaderGrub2 *self = OSTREE_BOOTLOADER_GRUB2 (bootloader); - -+ g_autoptr (GFile) bootupd_config -+ = g_file_resolve_relative_path (self->sysroot->path, BOOTUPD_CONFIG); -+ if (g_file_query_exists (bootupd_config, NULL)) -+ { -+ g_autofree char *bootupd_config_contents = NULL; -+ if (!g_file_load_contents (bootupd_config, cancellable, &bootupd_config_contents, NULL, NULL, -+ error)) -+ return glnx_prefix_error (error, "Failed to read bootupd config"); -+ if (strstr (bootupd_config_contents, BOOTUPD_CONFIG_STATIC_JSON_FRAGMENT) != NULL) -+ { -+ g_debug ("Found static bootupd config"); -+ *out_is_active = FALSE; -+ return TRUE; -+ } -+ } -+ - /* Look for the BIOS path first */ - if (g_file_query_exists (self->config_path_bios_1, NULL) - || g_file_query_exists (self->config_path_bios_2, NULL)) -diff --git a/tests/kolainst/destructive/bootupd-static.sh b/tests/kolainst/destructive/bootupd-static.sh -new file mode 100755 -index 00000000..cf836813 ---- /dev/null -+++ b/tests/kolainst/destructive/bootupd-static.sh -@@ -0,0 +1,36 @@ -+#!/bin/bash -+set -xeuo pipefail -+ -+. ${KOLA_EXT_DATA}/libinsttest.sh -+ -+require_writable_sysroot -+prepare_tmpdir -+ -+bootupd_state=/boot/bootupd-state.json -+mount -o remount,rw /boot -+if grep -qFe "\"static-configs\"" "${bootupd_state}"; then -+ echo "Host is using static configs already, overriding this" -+ jq 'del(.["static-configs"])' < "${bootupd_state}" > "${bootupd_state}".new -+ mv "${bootupd_state}.new" "${bootupd_state}" -+fi -+ -+# Print the current value for reference, it's "none" on FCOS derivatives -+ostree config get sysroot.bootloader || true -+ostree config set sysroot.bootloader auto -+ -+ostree admin deploy --stage "${host_commit}" -+systemctl stop ostree-finalize-staged.service -+used_bootloader=$(journalctl -u ostree-finalize-staged -o json MESSAGE_ID=dd440e3e549083b63d0efc7dc15255f1 | tail -1 | jq -r .OSTREE_BOOTLOADER) -+# We're verifying the legacy default now -+assert_streq "${used_bootloader}" "grub2" -+ostree admin undeploy 0 -+ -+# Now synthesize a bootupd config which uses static configs -+jq '. + {"static-configs": {}}' < "${bootupd_state}" > "${bootupd_state}".new -+mv "${bootupd_state}.new" "${bootupd_state}" -+ostree admin deploy --stage "${host_commit}" -+systemctl stop ostree-finalize-staged.service -+used_bootloader=$(journalctl -u ostree-finalize-staged -o json MESSAGE_ID=dd440e3e549083b63d0efc7dc15255f1 | tail -1 | jq -r .OSTREE_BOOTLOADER) -+assert_streq "${used_bootloader}" "none" -+ -+echo "ok bootupd static" --- -2.41.0 - diff --git a/ostree.spec b/ostree.spec index 79432c5..a7caf00 100644 --- a/ostree.spec +++ b/ostree.spec @@ -7,15 +7,12 @@ Summary: Tool for managing bootable, immutable filesystem trees Name: ostree -Version: 2024.4 -Release: 3%{?dist} +Version: 2024.5 +Release: 2%{?dist} Source0: https://github.com/ostreedev/%{name}/releases/download/v%{version}/libostree-%{version}.tar.xz Source1: ostree-readonly-sysroot-migration Source2: ostree-readonly-sysroot-migration.service -# https://issues.redhat.com/browse/RHEL-27199 -Patch0: 0001-bootloader-grub2-Don-t-do-anything-if-we-have-static.patch - License: LGPLv2+ URL: https://ostree.readthedocs.io/en/latest/ @@ -180,6 +177,9 @@ find %{buildroot} -name '*.la' -delete %endif %changelog +* Thu Mar 14 2024 Colin Walters - 2024.5-2 +- https://github.com/ostreedev/ostree/releases/tag/v2024.5 + * Wed Feb 28 2024 Colin Walters - 2024.4-3 - Backport https://github.com/ostreedev/ostree/pull/3205/commits/e47b37096343efa3bea8295f3f44c4dc90cc04e2 diff --git a/sources b/sources index b08754d..3d30768 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libostree-2024.4.tar.xz) = 4754f1f9163f98c7d4055e1094ebf6cb1e5f5ac429cb9a62b2b6e119e64f71f0abc29f48b92026d33eb04debae19d6fada17c74af3ad38c65c7fae96f81bbd36 +SHA512 (libostree-2024.5.tar.xz) = d678424d26596cd75455ce464756dcfba4228e1a38be1fe9742e71bafdd5e1d89aa01c85c576a45e42504e616b8881a01d07e54d5527c74bf12a970510432ccb