This commit is contained in:
Jonathan Lebon 2022-04-27 15:15:58 -04:00
parent 504d860466
commit d26e2b9e9d
4 changed files with 9 additions and 50 deletions

2
.gitignore vendored
View File

@ -20,3 +20,5 @@
/coreos-installer-0.12.0-vendor.tar.gz
/coreos-installer-0.13.1.crate
/coreos-installer-0.13.1-vendor.tar.gz
/coreos-installer-0.14.0.crate
/coreos-installer-0.14.0-vendor.tar.gz

View File

@ -1,42 +0,0 @@
From 2ddf120b3b924c325a0a95db5386cc35f1c03538 Mon Sep 17 00:00:00 2001
From: Jonathan Lebon <jonathan@jlebon.com>
Date: Wed, 9 Mar 2022 17:14:14 -0500
Subject: [PATCH] blockdev: rework EFI vendor dir checking
On some Dell machines at least, something (UEFI firmware?) creates a
`Dell` directory in the `EFI` dir. This throws off our logic here which
expects only a single vendor dir.
Let's tweak the logic so that we only consider a "vendor dir" a
directory which has a `grub.cfg`.
Closes: https://github.com/coreos/fedora-coreos-tracker/issues/1116
---
src/blockdev.rs | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/blockdev.rs b/src/blockdev.rs
index 43c7dcf..e8fce45 100644
--- a/src/blockdev.rs
+++ b/src/blockdev.rs
@@ -930,13 +930,13 @@ pub fn find_efi_vendor_dir(efi_mount: &Mount) -> Result<PathBuf> {
let mut vendor_dir: Vec<PathBuf> = Vec::new();
for ent in p.read_dir()? {
let ent = ent.with_context(|| format!("reading directory entry in {}", p.display()))?;
- if ent.file_name() == "BOOT" {
- continue;
- }
if !ent.file_type()?.is_dir() {
continue;
}
- vendor_dir.push(ent.path());
+ let path = ent.path();
+ if path.join("grub.cfg").is_file() {
+ vendor_dir.push(path);
+ }
}
if vendor_dir.len() != 1 {
bail!(
--
2.35.1

View File

@ -11,8 +11,8 @@
%global crate coreos-installer
Name: rust-%{crate}
Version: 0.13.1
Release: 3%{?dist}
Version: 0.14.0
Release: 1%{?dist}
Summary: Installer for Fedora CoreOS and RHEL CoreOS
# Upstream license specification: Apache-2.0
@ -23,10 +23,6 @@ Source0: https://crates.io/api/v1/crates/%{crate}/%{version}/download#/%{
Source1: https://github.com/coreos/%{crate}/releases/download/v%{version}/%{crate}-%{version}-vendor.tar.gz
Source2: https://github.com/coreos/coreos-installer-dracut/archive/%{dracutcommit}/coreos-installer-dracut-%{dracutshortcommit}.tar.gz
# https://github.com/coreos/coreos-installer/pull/802 for
# https://github.com/coreos/fedora-coreos-tracker/issues/1116
Patch0: 0001-blockdev-rework-EFI-vendor-dir-checking.patch
ExclusiveArch: %{rust_arches}
%if 0%{?rhel} && !0%{?eln}
BuildRequires: rust-toolset
@ -194,6 +190,9 @@ from the initramfs.
%endif
%changelog
* Wed Apr 27 2022 Jonathan Lebon <jonathan@jlebon.com> - 0.14.0-1
- New release
* Wed Mar 23 2022 Jonathan Lebon <jonathan@jlebon.com> - 0.13.1-3
- Backport "blockdev: rework EFI vendor dir checking"
https://github.com/coreos/coreos-installer/pull/802 for

View File

@ -1,3 +1,3 @@
SHA512 (coreos-installer-0.13.1.crate) = 4975636ef5ddcf2a1be6dfe5ddf1cfbb2aa8609c4c34fb2e49648bdf6643b48fc87219acd635e95d9dcb16c3c9ac63a22bcd03fb9077a31941924263addb76a1
SHA512 (coreos-installer-0.13.1-vendor.tar.gz) = f45e0857edf1ccbb9f116debeec13dd6c2c549c5967aad38de9284756d135829320088e70319ad2776f1dcf1729a6c6eb17c25746aceca9510f55dd631ed5c97
SHA512 (coreos-installer-0.14.0.crate) = 7d62dae5754b767620a5a66971f6e8e0fe1bcb8f9a9fc65b85fc16e98527d9704fde19b1599fe9cdc44663cdf6f0bb1e394f7ddfa5652278408fb2a969a4894b
SHA512 (coreos-installer-0.14.0-vendor.tar.gz) = 16cb18bdc9b9b81383d5a938b0493f34eba5b84c72aeedc4bc71ec1e8aba304abd47248d2aa501aa7a40a6e2a1578673d0e0a7aa1ea05032c165b296e116885b
SHA512 (coreos-installer-dracut-9332fe5.tar.gz) = 2cd481c4aacddcb51726a2d7e84879e7cb7623b5d984b1bd496362bfb3dc7ea6fb232864d696b7b72900d797674d14754222532167da545f445d8092ec2fe6ea