import CS ostree-2024.4-3.el9
This commit is contained in:
parent
1883a0b28c
commit
43c859eadc
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
||||
SOURCES/libostree-2023.6.tar.xz
|
||||
SOURCES/libostree-2024.4.tar.xz
|
||||
|
@ -1 +1 @@
|
||||
1f063c495ee29b92903c152fa410df96c80d5e25 SOURCES/libostree-2023.6.tar.xz
|
||||
2aab75147722cc35e7bce341aa836fff81c6f176 SOURCES/libostree-2024.4.tar.xz
|
||||
|
@ -0,0 +1,105 @@
|
||||
From e47b37096343efa3bea8295f3f44c4dc90cc04e2 Mon Sep 17 00:00:00 2001
|
||||
From: Colin Walters <walters@verbum.org>
|
||||
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 <string.h>
|
||||
|
||||
+// 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
|
||||
|
@ -7,12 +7,15 @@
|
||||
|
||||
Summary: Tool for managing bootable, immutable filesystem trees
|
||||
Name: ostree
|
||||
Version: 2023.6
|
||||
Release: 1%{?dist}
|
||||
Version: 2024.4
|
||||
Release: 3%{?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/
|
||||
|
||||
@ -177,6 +180,36 @@ find %{buildroot} -name '*.la' -delete
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Wed Feb 28 2024 Colin Walters <walters@verbum.org> - 2024.4-3
|
||||
- Backport
|
||||
https://github.com/ostreedev/ostree/pull/3205/commits/e47b37096343efa3bea8295f3f44c4dc90cc04e2
|
||||
|
||||
* Fri Feb 23 2024 Colin Walters <walters@verbum.org> - 2024.4-2
|
||||
- https://github.com/ostreedev/ostree/releases/tag/v2024.4
|
||||
|
||||
* Wed Feb 14 2024 Colin Walters <walters@verbum.org> - 2024.3-2
|
||||
- https://github.com/ostreedev/ostree/releases/tag/v2024.3
|
||||
Resolves: #RHEL-19419
|
||||
|
||||
* Thu Feb 08 2024 Colin Walters <walters@verbum.org> - 2024.2-2
|
||||
- https://github.com/ostreedev/ostree/releases/tag/v2024.2
|
||||
|
||||
* Sun Jan 21 2024 Colin Walters <walters@verbum.org> - 2024.1-2
|
||||
- https://github.com/ostreedev/ostree/releases/tag/v2024.1
|
||||
Resolves: #RHEL-19419
|
||||
|
||||
* Wed Dec 13 2023 Joseph Marrero <jmarrero@fedoraproject.org> - 2023.8-3
|
||||
- https://github.com/ostreedev/ostree/releases/tag/v2023.8
|
||||
Resolves: #RHEL-19419
|
||||
|
||||
* Wed Dec 06 2023 Colin Walters <walters@verbum.org> - 2023.8-2
|
||||
- https://github.com/ostreedev/ostree/releases/tag/v2023.8
|
||||
Resolves: #RHEL-19419
|
||||
|
||||
* Fri Oct 20 2023 Colin Walters <walters@verbum.org> - 2023.7-2
|
||||
- https://github.com/ostreedev/ostree/releases/tag/v2023.7
|
||||
Resolves: #RHEL-14381
|
||||
|
||||
* Fri Aug 25 2023 Joseph Marrero <jmarrero@fedoraproject.org> - 2023.6-1
|
||||
- https://github.com/ostreedev/ostree/releases/tag/v2023.6
|
||||
Resolves: rhbz#2234351
|
||||
|
Loading…
Reference in New Issue
Block a user