From 2d728b9bb2990647b813b041daeec96263eaacf0 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Mon, 22 Sep 2025 13:58:06 +0200 Subject: [PATCH 01/33] update to version 25.9 --- sources | 2 +- virt-firmware-rs.spec | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/sources b/sources index 27caf2b..b56bb91 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (virt-firmware-rs-v25.8.tar.gz) = 6e5cba78a5117acb8488a559a52d34285e108974889ca332094b21119ec09c112308cea6ec3fec17031c43cf1dd3e8567a19ebb4776a5fa9c4976f783e3de6a2 +SHA512 (virt-firmware-rs-v25.9.tar.gz) = a488f062a4d248b4046291fa93b14cf3e2ec54ba777f25b4033276e2ace5418ad9af62da03d83a24cc1909cd680350afa841b16f597833671e56303d32f004bf diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index 40bb27e..13c9827 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -18,7 +18,7 @@ BuildRequires: rust-std-static-x86_64-unknown-uefi %endif Name: virt-firmware-rs -Version: 25.8 +Version: 25.9 Release: %autorelease Summary: Tools for EFI and virtual machine firmware @@ -61,7 +61,6 @@ firmware. This package has EFI applications for %{efiarch}. %autosetup -n %{name}-v%{version} -p1 %cargo_prep # drop unused packages from workspace to reduce dependencies. -sed -i Cargo.toml -e '/varstore/d' %if %{without efi_apps} sed -i Cargo.toml -e '/efi-apps/d' %endif @@ -73,6 +72,7 @@ sed -i Cargo.toml -e '/efi-apps/d' %cargo_build -- --package virtfw-efi-tools --features udev %cargo_build -- --package virtfw-efi-tools %cargo_build -- --package virtfw-igvm-tools +%cargo_build -- --package virtfw-varstore --features std,json,pem %if %{with efi_apps} %cargo_build -- --package virtfw-efi-apps --target $(uname -m)-unknown-uefi %endif @@ -85,6 +85,7 @@ install -d %{buildroot}%{_bindir} install -v -m 755 target/rpm/generate-boot-csv %{buildroot}%{_bindir} install -v -m 755 target/rpm/list-sb-vars %{buildroot}%{_bindir} install -v -m 755 target/rpm/mini-bootcfg %{buildroot}%{_bindir} +install -v -m 755 target/rpm/setup-efi-vars %{buildroot}%{_bindir} install -v -m 755 target/rpm/uefi-boot-menu %{buildroot}%{_bindir}/uefi-boot-menu-rs install -v -m 755 target/rpm/igvm-inspect %{buildroot}%{_bindir} install -v -m 755 target/rpm/igvm-wrap %{buildroot}%{_bindir} @@ -115,6 +116,7 @@ echo "skip tests on bigendian" %{_bindir}/generate-boot-csv %{_bindir}/list-sb-vars %{_bindir}/mini-bootcfg +%{_bindir}/setup-efi-vars %{_bindir}/uefi-boot-menu-rs %{_bindir}/igvm-inspect %{_bindir}/igvm-wrap From a856096e60bf0b6e062bc64225b0ebf346e91c0e Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Mon, 22 Sep 2025 15:01:03 +0200 Subject: [PATCH 02/33] limit build to uefi architectures --- virt-firmware-rs.spec | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index 13c9827..7230e9c 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -38,6 +38,7 @@ License: %{shrink: URL: https://gitlab.com/kraxel/virt-firmware-rs Source: https://gitlab.com/kraxel/%{name}/-/archive/v%{version}/%{name}-v%{version}.tar.gz +ExclusiveArch: x86_64 aarch64 riscv64 BuildRequires: cargo-rpm-macros >= 24 BuildRequires: pkgconfig(libudev) @@ -100,13 +101,10 @@ for dir in efi-apps efi-tools igvm-tools; do done %check -%ifarch s390x -echo "skip tests on bigendian" -%else %cargo_test -- --package virtfw-libefi %cargo_test -- --package virtfw-efi-tools --features udev %cargo_test -- --package virtfw-igvm-tools -%endif +%cargo_test -- --package virtfw-varstore %files %license LICENSE LICENSE.dependencies From 5e760b96970d57932da0ffe781c36c1c799a3d3c Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Fri, 10 Oct 2025 13:27:11 -0400 Subject: [PATCH 03/33] Fix `--without check` Signed-off-by: Cole Robinson --- virt-firmware-rs.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index 7230e9c..dc5d9bb 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -100,11 +100,13 @@ for dir in efi-apps efi-tools igvm-tools; do cp -v ${dir}/README.md README.${dir}.md done +%if %{with check} %check %cargo_test -- --package virtfw-libefi %cargo_test -- --package virtfw-efi-tools --features udev %cargo_test -- --package virtfw-igvm-tools %cargo_test -- --package virtfw-varstore +%endif %files %license LICENSE LICENSE.dependencies From 86dbe9d574478e29f2af30cf23758889c75ce0ca Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 15 Oct 2025 15:24:22 +0200 Subject: [PATCH 04/33] update to version 25.10 --- sources | 2 +- virt-firmware-rs.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sources b/sources index b56bb91..019cf06 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (virt-firmware-rs-v25.9.tar.gz) = a488f062a4d248b4046291fa93b14cf3e2ec54ba777f25b4033276e2ace5418ad9af62da03d83a24cc1909cd680350afa841b16f597833671e56303d32f004bf +SHA512 (virt-firmware-rs-v25.10.tar.gz) = 78518dd4879648d2601f15e1441ebf0c1361f53428d20bbb6d418bec274de827ae04ad8b8c2909f21444c8d1367e49d4e9e3bc616e89ef9a9730bb7c5392d227 diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index dc5d9bb..5021934 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -18,7 +18,7 @@ BuildRequires: rust-std-static-x86_64-unknown-uefi %endif Name: virt-firmware-rs -Version: 25.9 +Version: 25.10 Release: %autorelease Summary: Tools for EFI and virtual machine firmware From a5959e8308feb097a6e1c86301f3c9c378e0421c Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 12 Nov 2025 10:55:02 +0100 Subject: [PATCH 05/33] update to version 25.11 --- downgrade-dialoguer.patch | 13 +++++++++++++ sources | 2 +- virt-firmware-rs.spec | 19 +++++++++++++++---- 3 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 downgrade-dialoguer.patch diff --git a/downgrade-dialoguer.patch b/downgrade-dialoguer.patch new file mode 100644 index 0000000..4ddf420 --- /dev/null +++ b/downgrade-dialoguer.patch @@ -0,0 +1,13 @@ +diff --git a/efi-tools/Cargo.toml b/efi-tools/Cargo.toml +index 383ea77..68b8356 100644 +--- a/efi-tools/Cargo.toml ++++ b/efi-tools/Cargo.toml +@@ -33,7 +33,7 @@ log.workspace = true + stderrlog.workspace = true + uguid.workspace = true + +-dialoguer = "0.12" ++dialoguer = "0.11" + glob = "0.3" + + virtfw-libefi = { workspace = true, features = [ "std", "sbdata", "x509" ] } diff --git a/sources b/sources index 019cf06..d948e57 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (virt-firmware-rs-v25.10.tar.gz) = 78518dd4879648d2601f15e1441ebf0c1361f53428d20bbb6d418bec274de827ae04ad8b8c2909f21444c8d1367e49d4e9e3bc616e89ef9a9730bb7c5392d227 +SHA512 (virt-firmware-rs-v25.11.tar.gz) = 9ea907d4c59a244de11d68d7e4296b9505c9f836710ac7594e3b0d8527d341aa323847f268ce1cd80b0275f5e368c12712e4a747e1ae93fc1ec6619521d12cf5 diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index 5021934..f10ed26 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -18,7 +18,7 @@ BuildRequires: rust-std-static-x86_64-unknown-uefi %endif Name: virt-firmware-rs -Version: 25.10 +Version: 25.11 Release: %autorelease Summary: Tools for EFI and virtual machine firmware @@ -38,6 +38,8 @@ License: %{shrink: URL: https://gitlab.com/kraxel/virt-firmware-rs Source: https://gitlab.com/kraxel/%{name}/-/archive/v%{version}/%{name}-v%{version}.tar.gz +Patch1: downgrade-dialoguer.patch + ExclusiveArch: x86_64 aarch64 riscv64 BuildRequires: cargo-rpm-macros >= 24 BuildRequires: pkgconfig(libudev) @@ -62,12 +64,13 @@ firmware. This package has EFI applications for %{efiarch}. %autosetup -n %{name}-v%{version} -p1 %cargo_prep # drop unused packages from workspace to reduce dependencies. +sed -i Cargo.toml -e '/bios-64/d' %if %{without efi_apps} sed -i Cargo.toml -e '/efi-apps/d' %endif %generate_buildrequires -%cargo_generate_buildrequires +%cargo_generate_buildrequires -f std,json,pem,udev %build %cargo_build -- --package virtfw-efi-tools --features udev @@ -86,10 +89,11 @@ install -d %{buildroot}%{_bindir} install -v -m 755 target/rpm/generate-boot-csv %{buildroot}%{_bindir} install -v -m 755 target/rpm/list-sb-vars %{buildroot}%{_bindir} install -v -m 755 target/rpm/mini-bootcfg %{buildroot}%{_bindir} -install -v -m 755 target/rpm/setup-efi-vars %{buildroot}%{_bindir} +install -v -m 755 target/rpm/virt-fw-vars-setup %{buildroot}%{_bindir} install -v -m 755 target/rpm/uefi-boot-menu %{buildroot}%{_bindir}/uefi-boot-menu-rs install -v -m 755 target/rpm/igvm-inspect %{buildroot}%{_bindir} install -v -m 755 target/rpm/igvm-wrap %{buildroot}%{_bindir} +install -v -m 755 target/rpm/igvm-update %{buildroot}%{_bindir} %if %{with efi_apps} # efi-apps install -d %{buildroot}%{_datadir}/%{name}/%{efiarch} @@ -99,6 +103,11 @@ install -v -m 644 target/*-unknown-uefi/rpm/*.efi %{buildroot}%{_datadir}/%{name for dir in efi-apps efi-tools igvm-tools; do cp -v ${dir}/README.md README.${dir}.md done +# man pages +mkdir -p %{buildroot}%{_mandir}/man1 +for app in virt-fw-vars-setup igvm-inspect igvm-wrap igvm-update; do + %{buildroot}%{_bindir}/${app} --manpage > %{buildroot}%{_mandir}/man1/${app}.1 +done %if %{with check} %check @@ -116,10 +125,12 @@ done %{_bindir}/generate-boot-csv %{_bindir}/list-sb-vars %{_bindir}/mini-bootcfg -%{_bindir}/setup-efi-vars +%{_bindir}/virt-fw-vars-setup %{_bindir}/uefi-boot-menu-rs %{_bindir}/igvm-inspect %{_bindir}/igvm-wrap +%{_bindir}/igvm-update +%{_mandir}/man1/* %if %{with efi_apps} %files -n %{name}-%{efiarch} From 7bc3f82f8e4783a6e371d5c6553610417263672b Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Thu, 4 Dec 2025 13:09:46 +0100 Subject: [PATCH 06/33] update to version 25.12 --- sources | 2 +- virt-firmware-rs.spec | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sources b/sources index d948e57..05fdeb4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (virt-firmware-rs-v25.11.tar.gz) = 9ea907d4c59a244de11d68d7e4296b9505c9f836710ac7594e3b0d8527d341aa323847f268ce1cd80b0275f5e368c12712e4a747e1ae93fc1ec6619521d12cf5 +SHA512 (virt-firmware-rs-v25.12.tar.gz) = a33894e80ee6e0090198ef80a5dbb66e4b55caf8acc51e80d7c31b44102970c714258a23607ed89ca08a95022dd1ea292a0aa303a00200ef81ee7b512a9dc42a diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index f10ed26..00a8f76 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -18,7 +18,7 @@ BuildRequires: rust-std-static-x86_64-unknown-uefi %endif Name: virt-firmware-rs -Version: 25.11 +Version: 25.12 Release: %autorelease Summary: Tools for EFI and virtual machine firmware @@ -64,7 +64,7 @@ firmware. This package has EFI applications for %{efiarch}. %autosetup -n %{name}-v%{version} -p1 %cargo_prep # drop unused packages from workspace to reduce dependencies. -sed -i Cargo.toml -e '/bios-64/d' +sed -i Cargo.toml -e '/mefisto/d' %if %{without efi_apps} sed -i Cargo.toml -e '/efi-apps/d' %endif From d62be73f05f99c81b80e3cdca64febafb439d10d Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 14 Jan 2026 14:27:28 +0100 Subject: [PATCH 07/33] update to version 26.1 --- sources | 2 +- virt-firmware-rs.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sources b/sources index 05fdeb4..a0ec5cf 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (virt-firmware-rs-v25.12.tar.gz) = a33894e80ee6e0090198ef80a5dbb66e4b55caf8acc51e80d7c31b44102970c714258a23607ed89ca08a95022dd1ea292a0aa303a00200ef81ee7b512a9dc42a +SHA512 (virt-firmware-rs-v26.1.tar.gz) = ed096f21dee8f642ab85b9eb4d9c5b5e81af7a48ce0abca77dd4db4ffe142e4cd01eae3d3a5dde48ab226cb0e0e73af269570da078983682c6eac687ef46cf2c diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index 00a8f76..7d49d21 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -18,7 +18,7 @@ BuildRequires: rust-std-static-x86_64-unknown-uefi %endif Name: virt-firmware-rs -Version: 25.12 +Version: 26.1 Release: %autorelease Summary: Tools for EFI and virtual machine firmware From 8e7b71971067981855224d32d8c1bdb1a6437aa8 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Tue, 6 Jan 2026 14:45:50 +0100 Subject: [PATCH 08/33] enable tmt tests --- gating.yaml | 9 +++++++++ plans.fmf | 6 ++++++ 2 files changed, 15 insertions(+) create mode 100644 gating.yaml create mode 100644 plans.fmf diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..1b95cbb --- /dev/null +++ b/gating.yaml @@ -0,0 +1,9 @@ +--- !Policy +product_versions: + - fedora-* +decision_contexts: [bodhi_update_push_stable] +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.installability.functional} + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.rpminspect.static-analysis} diff --git a/plans.fmf b/plans.fmf new file mode 100644 index 0000000..e37d567 --- /dev/null +++ b/plans.fmf @@ -0,0 +1,6 @@ +summary: run tests from distgit tarball +discover: + how: fmf + dist-git-source: true +execute: + how: tmt From bea64d8dc440cb0ec6c76de7212d208ae66a87ca Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 14 Jan 2026 15:01:43 +0100 Subject: [PATCH 09/33] drop rpminspect.static-analysis test from gating Seems to have trouble to deal with the rust licensing mix ... --- gating.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/gating.yaml b/gating.yaml index 1b95cbb..b1ef231 100644 --- a/gating.yaml +++ b/gating.yaml @@ -6,4 +6,3 @@ subject_type: koji_build rules: - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.installability.functional} - - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.rpminspect.static-analysis} From baa76ab3f3a9301e9f00932736ab67e96631a8cb Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 14 Jan 2026 16:45:44 +0100 Subject: [PATCH 10/33] drop tier0.functional test from gating --- gating.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/gating.yaml b/gating.yaml index b1ef231..6f340df 100644 --- a/gating.yaml +++ b/gating.yaml @@ -4,5 +4,4 @@ product_versions: decision_contexts: [bodhi_update_push_stable] subject_type: koji_build rules: - - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.installability.functional} From c833c4b9cf43aa04c8f5c08d4c770dfe1dc6073b Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 14 Jan 2026 17:08:01 +0100 Subject: [PATCH 11/33] init tmt --- .fmf/version | 1 + 1 file changed, 1 insertion(+) create mode 100644 .fmf/version diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 From 9cbbd89c4a6c8b0d82f254b7ab80b87bda0cb201 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 14 Jan 2026 19:20:50 +0100 Subject: [PATCH 12/33] Revert "drop tier0.functional test from gating" This reverts commit baa76ab3f3a9301e9f00932736ab67e96631a8cb. --- gating.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/gating.yaml b/gating.yaml index 6f340df..b1ef231 100644 --- a/gating.yaml +++ b/gating.yaml @@ -4,4 +4,5 @@ product_versions: decision_contexts: [bodhi_update_push_stable] subject_type: koji_build rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.installability.functional} From fe5801e6a873b39adbf3bbd10b4716b0d41e17a3 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Thu, 15 Jan 2026 09:14:25 +0100 Subject: [PATCH 13/33] move %cargo_prep from %prep to %build --- virt-firmware-rs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index 7d49d21..aa0e71b 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -62,7 +62,6 @@ firmware. This package has EFI applications for %{efiarch}. %prep %autosetup -n %{name}-v%{version} -p1 -%cargo_prep # drop unused packages from workspace to reduce dependencies. sed -i Cargo.toml -e '/mefisto/d' %if %{without efi_apps} @@ -73,6 +72,7 @@ sed -i Cargo.toml -e '/efi-apps/d' %cargo_generate_buildrequires -f std,json,pem,udev %build +%cargo_prep %cargo_build -- --package virtfw-efi-tools --features udev %cargo_build -- --package virtfw-efi-tools %cargo_build -- --package virtfw-igvm-tools From 6ffee04a0c50f616d7c47e86dc8560d82dde366a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 17 Jan 2026 19:58:08 +0000 Subject: [PATCH 14/33] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild From 56b1347f02d7ffef7b2202d0efd4b6b6c3de37fa Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Tue, 3 Feb 2026 13:29:54 +0100 Subject: [PATCH 15/33] tmt: pick one kernel in case multiple are present --- ...-kernel-in-case-multiple-are-present.patch | 32 +++++++++++++++++++ virt-firmware-rs.spec | 1 + 2 files changed, 33 insertions(+) create mode 100644 0001-tmt-pick-one-kernel-in-case-multiple-are-present.patch diff --git a/0001-tmt-pick-one-kernel-in-case-multiple-are-present.patch b/0001-tmt-pick-one-kernel-in-case-multiple-are-present.patch new file mode 100644 index 0000000..0e6c07b --- /dev/null +++ b/0001-tmt-pick-one-kernel-in-case-multiple-are-present.patch @@ -0,0 +1,32 @@ +From 4de6ccc60d39f6c2a391d4031c65fb7f18064f9d Mon Sep 17 00:00:00 2001 +From: Gerd Hoffmann +Date: Thu, 15 Jan 2026 15:33:30 +0100 +Subject: [PATCH] tmt: pick one kernel in case multiple are present + +--- + tmt/igvm.fmf | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/tmt/igvm.fmf b/tmt/igvm.fmf +index 08b6c958fb9d..d772bbc2b6b6 100644 +--- a/tmt/igvm.fmf ++++ b/tmt/igvm.fmf +@@ -31,6 +31,7 @@ framework: shell + - edk2-ovmf + - kernel-core + test: | ++ KERNEL=$(ls /lib/modules/*/vmlinuz | head -1) + set -ex + igvm-wrap \ + --input /usr/share/edk2/ovmf/OVMF_CODE.fd \ +@@ -38,6 +39,6 @@ framework: shell + --output bare.igvm + igvm-update \ + --input bare.igvm \ +- --kernel /lib/modules/*/vmlinuz \ ++ --kernel $KERNEL \ + --output test.igvm + igvm-inspect test.igvm +-- +2.52.0 + diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index aa0e71b..8cf90c6 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -39,6 +39,7 @@ URL: https://gitlab.com/kraxel/virt-firmware-rs Source: https://gitlab.com/kraxel/%{name}/-/archive/v%{version}/%{name}-v%{version}.tar.gz Patch1: downgrade-dialoguer.patch +Patch2: 0001-tmt-pick-one-kernel-in-case-multiple-are-present.patch ExclusiveArch: x86_64 aarch64 riscv64 BuildRequires: cargo-rpm-macros >= 24 From 18f1a4656dfbf77c04c00df74061f6241c900561 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Tue, 3 Feb 2026 13:31:04 +0100 Subject: [PATCH 16/33] enable authendicode support --- virt-firmware-rs.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index 8cf90c6..9890dc0 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -70,14 +70,14 @@ sed -i Cargo.toml -e '/efi-apps/d' %endif %generate_buildrequires -%cargo_generate_buildrequires -f std,json,pem,udev +%cargo_generate_buildrequires -f std,json,pem,udev,authenticode %build %cargo_prep %cargo_build -- --package virtfw-efi-tools --features udev %cargo_build -- --package virtfw-efi-tools %cargo_build -- --package virtfw-igvm-tools -%cargo_build -- --package virtfw-varstore --features std,json,pem +%cargo_build -- --package virtfw-varstore --features std,json,pem,authenticode %if %{with efi_apps} %cargo_build -- --package virtfw-efi-apps --target $(uname -m)-unknown-uefi %endif From 7d3e38096a4cb0853db3393495908bc73b370d59 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Tue, 3 Feb 2026 15:07:31 +0100 Subject: [PATCH 17/33] enable authenticode for the correct crate --- virt-firmware-rs.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index 9890dc0..3f3e874 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -76,8 +76,8 @@ sed -i Cargo.toml -e '/efi-apps/d' %cargo_prep %cargo_build -- --package virtfw-efi-tools --features udev %cargo_build -- --package virtfw-efi-tools -%cargo_build -- --package virtfw-igvm-tools -%cargo_build -- --package virtfw-varstore --features std,json,pem,authenticode +%cargo_build -- --package virtfw-igvm-tools --features authenticode +%cargo_build -- --package virtfw-varstore --features std,json,pem %if %{with efi_apps} %cargo_build -- --package virtfw-efi-apps --target $(uname -m)-unknown-uefi %endif From a179111fbe9eac5ac4fcb6064a1489359304d640 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 4 Mar 2026 13:53:25 +0100 Subject: [PATCH 18/33] add packit config --- .packit.yaml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .packit.yaml diff --git a/.packit.yaml b/.packit.yaml new file mode 100644 index 0000000..b3ae56b --- /dev/null +++ b/.packit.yaml @@ -0,0 +1,16 @@ +# See the documentation for more information: +# https://packit.dev/docs/configuration/ + +jobs: + - job: pull_from_upstream + trigger: release + dist_git_branches: + - fedora-rawhide + - job: koji_build + trigger: commit + dist_git_branches: + - fedora-all + - job: bodhi_update + trigger: commit + dist_git_branches: + - fedora-branched From e2c1c28b2ed497b8d2123a9b25692189393c84f3 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 4 Mar 2026 15:55:12 +0100 Subject: [PATCH 19/33] update to version 26.3 --- ...-kernel-in-case-multiple-are-present.patch | 32 ------------------- sources | 2 +- virt-firmware-rs.spec | 3 +- 3 files changed, 2 insertions(+), 35 deletions(-) delete mode 100644 0001-tmt-pick-one-kernel-in-case-multiple-are-present.patch diff --git a/0001-tmt-pick-one-kernel-in-case-multiple-are-present.patch b/0001-tmt-pick-one-kernel-in-case-multiple-are-present.patch deleted file mode 100644 index 0e6c07b..0000000 --- a/0001-tmt-pick-one-kernel-in-case-multiple-are-present.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 4de6ccc60d39f6c2a391d4031c65fb7f18064f9d Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Thu, 15 Jan 2026 15:33:30 +0100 -Subject: [PATCH] tmt: pick one kernel in case multiple are present - ---- - tmt/igvm.fmf | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/tmt/igvm.fmf b/tmt/igvm.fmf -index 08b6c958fb9d..d772bbc2b6b6 100644 ---- a/tmt/igvm.fmf -+++ b/tmt/igvm.fmf -@@ -31,6 +31,7 @@ framework: shell - - edk2-ovmf - - kernel-core - test: | -+ KERNEL=$(ls /lib/modules/*/vmlinuz | head -1) - set -ex - igvm-wrap \ - --input /usr/share/edk2/ovmf/OVMF_CODE.fd \ -@@ -38,6 +39,6 @@ framework: shell - --output bare.igvm - igvm-update \ - --input bare.igvm \ -- --kernel /lib/modules/*/vmlinuz \ -+ --kernel $KERNEL \ - --output test.igvm - igvm-inspect test.igvm --- -2.52.0 - diff --git a/sources b/sources index a0ec5cf..2b8ac51 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (virt-firmware-rs-v26.1.tar.gz) = ed096f21dee8f642ab85b9eb4d9c5b5e81af7a48ce0abca77dd4db4ffe142e4cd01eae3d3a5dde48ab226cb0e0e73af269570da078983682c6eac687ef46cf2c +SHA512 (virt-firmware-rs-v26.3.tar.gz) = 02b7e9e58923a893809293c2009c7472ee1331680d78890d7e4494b18637d555bf86eaa94adb73fc80a60d7219177ee0633e51b20df747b37ff8068f01fa23b5 diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index 3f3e874..a5e2d25 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -18,7 +18,7 @@ BuildRequires: rust-std-static-x86_64-unknown-uefi %endif Name: virt-firmware-rs -Version: 26.1 +Version: 26.3 Release: %autorelease Summary: Tools for EFI and virtual machine firmware @@ -39,7 +39,6 @@ URL: https://gitlab.com/kraxel/virt-firmware-rs Source: https://gitlab.com/kraxel/%{name}/-/archive/v%{version}/%{name}-v%{version}.tar.gz Patch1: downgrade-dialoguer.patch -Patch2: 0001-tmt-pick-one-kernel-in-case-multiple-are-present.patch ExclusiveArch: x86_64 aarch64 riscv64 BuildRequires: cargo-rpm-macros >= 24 From 7134205e2c97c8b6c0071b03d3da2cc3d4cf2083 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Tue, 24 Mar 2026 14:27:48 +0100 Subject: [PATCH 20/33] update to version 26.4 Signed-off-by: Gerd Hoffmann --- sources | 2 +- virt-firmware-rs.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sources b/sources index 2b8ac51..afcd309 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (virt-firmware-rs-v26.3.tar.gz) = 02b7e9e58923a893809293c2009c7472ee1331680d78890d7e4494b18637d555bf86eaa94adb73fc80a60d7219177ee0633e51b20df747b37ff8068f01fa23b5 +SHA512 (virt-firmware-rs-v26.4.tar.gz) = 966251e7a6912055eb8f12c9475650b7a61adc445499cd9ef8652bd238ddc0a1b3dce7e8831c84e339adbaaee2160c9e5b1586f97d35f943a30fe2fc40bf7b95 diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index a5e2d25..63cf936 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -18,7 +18,7 @@ BuildRequires: rust-std-static-x86_64-unknown-uefi %endif Name: virt-firmware-rs -Version: 26.3 +Version: 26.4 Release: %autorelease Summary: Tools for EFI and virtual machine firmware From 62b740f97f27cb0c49be7095f3d21092f9c98726 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 25 Mar 2026 09:37:43 +0100 Subject: [PATCH 21/33] update downgrade-dialoguer.patch --- downgrade-dialoguer.patch | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/downgrade-dialoguer.patch b/downgrade-dialoguer.patch index 4ddf420..cae1aa7 100644 --- a/downgrade-dialoguer.patch +++ b/downgrade-dialoguer.patch @@ -1,9 +1,9 @@ diff --git a/efi-tools/Cargo.toml b/efi-tools/Cargo.toml -index 383ea77..68b8356 100644 +index 4cbf7ed1c4a5..95ace01b1822 100644 --- a/efi-tools/Cargo.toml +++ b/efi-tools/Cargo.toml -@@ -33,7 +33,7 @@ log.workspace = true - stderrlog.workspace = true +@@ -33,7 +33,7 @@ env_logger.workspace = true + log.workspace = true uguid.workspace = true -dialoguer = "0.12" From a0cc4e7990542a9341f7464127d7fc64220c2e71 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 25 Mar 2026 10:06:14 +0100 Subject: [PATCH 22/33] drop experimental workspace --- virt-firmware-rs.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index 63cf936..4d71f55 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -63,6 +63,7 @@ firmware. This package has EFI applications for %{efiarch}. %prep %autosetup -n %{name}-v%{version} -p1 # drop unused packages from workspace to reduce dependencies. +sed -i Cargo.toml -e '/experimental/d' sed -i Cargo.toml -e '/mefisto/d' %if %{without efi_apps} sed -i Cargo.toml -e '/efi-apps/d' From 5648cc35e01e678e66b218e06de2457e196e5dfa Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Mon, 8 Jun 2026 12:11:26 +0200 Subject: [PATCH 23/33] update to version 26.6 Signed-off-by: Gerd Hoffmann --- sources | 2 +- virt-firmware-rs.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sources b/sources index afcd309..d9227df 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (virt-firmware-rs-v26.4.tar.gz) = 966251e7a6912055eb8f12c9475650b7a61adc445499cd9ef8652bd238ddc0a1b3dce7e8831c84e339adbaaee2160c9e5b1586f97d35f943a30fe2fc40bf7b95 +SHA512 (virt-firmware-rs-v26.6.tar.gz) = 9b59e80c147bd7eb3c5c921efb948def7fdf5029826481da30e8cb46295331b4679343382ee9d8c3b598d990639f1cfc1c560d6a498f15ff91df44e6ef0fed0c diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index 4d71f55..7902b5d 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -18,7 +18,7 @@ BuildRequires: rust-std-static-x86_64-unknown-uefi %endif Name: virt-firmware-rs -Version: 26.4 +Version: 26.6 Release: %autorelease Summary: Tools for EFI and virtual machine firmware From 04c30ccd292c7948ab836df37fb9f22bc239b3f3 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 24 Jun 2026 15:59:37 +0200 Subject: [PATCH 24/33] add update-generate-boot-csv.patch --- update-generate-boot-csv.patch | 92 ++++++++++++++++++++++++++++++++++ virt-firmware-rs.spec | 1 + 2 files changed, 93 insertions(+) create mode 100644 update-generate-boot-csv.patch diff --git a/update-generate-boot-csv.patch b/update-generate-boot-csv.patch new file mode 100644 index 0000000..d0516a6 --- /dev/null +++ b/update-generate-boot-csv.patch @@ -0,0 +1,92 @@ +diff --git a/efi-tools/src/bin/generate-boot-csv.rs b/efi-tools/src/bin/generate-boot-csv.rs +index c3f74d9aa182..f940940bf321 100644 +--- a/efi-tools/src/bin/generate-boot-csv.rs ++++ b/efi-tools/src/bin/generate-boot-csv.rs +@@ -4,7 +4,7 @@ + + use clap::Parser; + use log::{debug, error, info}; +-use std::path::PathBuf; ++use std::path::{Path, PathBuf}; + use std::process::ExitCode; + + use virtfw_efi_tools::shimcsv::write_boot_csv; +@@ -23,6 +23,10 @@ struct Args { + #[arg(long, value_name = "ESP")] + esp: Option, + ++ /// add efi binary ++ #[arg(long, value_name = "EFI")] ++ add: Vec, ++ + /// override csv output location + #[arg(long, value_name = "CSV")] + csv: Option, +@@ -32,6 +36,26 @@ struct Args { + cmdline: Option, + } + ++fn create_csv_line(esp_path: &Path, shim_name: &str, binary: &Path, cmdline: &str) -> String { ++ let efi = binary ++ .strip_prefix(esp_path) ++ .unwrap() ++ .display() ++ .to_string() ++ .replace("/", "\\"); ++ info!("efi: -> \\{efi}"); ++ let title = binary.file_name().unwrap().to_str().unwrap(); ++ let line = format!( ++ "{},{},\\{} {},{}\n", ++ shim_name, ++ title, ++ efi, ++ cmdline.trim(), ++ "Comment" ++ ); ++ line ++} ++ + fn main() -> ExitCode { + let args = Args::parse(); + +@@ -77,26 +101,24 @@ fn main() -> ExitCode { + + let mut csv = String::new(); + let esp_path = std::path::Path::new(&esp); ++ ++ for app in args.add { ++ if !app.starts_with(&esp) { ++ error!("{app} is not on esp ({esp})"); ++ return ExitCode::from(1); ++ } ++ let binary = std::path::Path::new(&app); ++ info!("add: {}", binary.display()); ++ let line = create_csv_line(esp_path, &shim_name, binary, ""); ++ csv.push_str(&line); ++ } ++ + for uki in glob::glob(&uki_glob).expect("uki glob failed").flatten() { + info!("uki: {}", uki.display()); +- let efi = uki +- .strip_prefix(esp_path) +- .unwrap() +- .display() +- .to_string() +- .replace("/", "\\"); +- info!("efi: -> \\{efi}"); +- let title = uki.file_name().unwrap().to_str().unwrap(); +- let line = format!( +- "{},{},\\{} {},{}\n", +- shim_name, +- title, +- efi, +- cmdline.trim(), +- "Comment" +- ); ++ let line = create_csv_line(esp_path, &shim_name, &uki, &cmdline); + csv.push_str(&line); + } ++ + if csv.is_empty() { + error!("no uki images found ({uki_glob})"); + return ExitCode::from(1); diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index 7902b5d..df5e189 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -39,6 +39,7 @@ URL: https://gitlab.com/kraxel/virt-firmware-rs Source: https://gitlab.com/kraxel/%{name}/-/archive/v%{version}/%{name}-v%{version}.tar.gz Patch1: downgrade-dialoguer.patch +Patch2: update-generate-boot-csv.patch ExclusiveArch: x86_64 aarch64 riscv64 BuildRequires: cargo-rpm-macros >= 24 From 2e19df667d0375453c7aa9e762cdf322a66f6dd9 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Mon, 8 Jun 2026 19:49:55 +0200 Subject: [PATCH 25/33] tmt: rework test plans --- plans.fmf | 46 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 3 deletions(-) diff --git a/plans.fmf b/plans.fmf index e37d567..7ed6d72 100644 --- a/plans.fmf +++ b/plans.fmf @@ -1,6 +1,46 @@ summary: run tests from distgit tarball -discover: - how: fmf - dist-git-source: true execute: how: tmt + +/tmt: + summary: run upstream tmt tests + provision: + how: virtual + hardware: + memory: '>= 4 GB' + cpu: + processors: ">= 2" + virtualization: + is-supported: true + prepare: + - name: install dependencies + how: install + package: + - virt-firmware-rs + - qemu-system-x86-core + discover: + how: fmf + dist-git-source: true + +/cargo: + summary: run upstream cargo tests + prepare: + - name: install dependencies + how: install + package: + - git + - make + - cargo + - rustc + - openssl-devel + - systemd-devel + discover: + how: shell + dist-git-source: true + tests: + - name: /run/make/test + test: | + set -ex + version=$(rpmspec -q --qf '%{version}\n' $TMT_SOURCE_DIR/*.spec | head -1) + prepdir="$TMT_SOURCE_DIR/virt-firmware-rs-v${version}" + make -C $prepdir test From 17b0f4352bacb41e4ea71a4548409a84ef0ddaf8 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 24 Jun 2026 18:20:26 +0200 Subject: [PATCH 26/33] update License: tag --- virt-firmware-rs.spec | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index df5e189..26693e7 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -24,15 +24,18 @@ Summary: Tools for EFI and virtual machine firmware SourceLicense: MIT License: %{shrink: - Apache-2.0 - Apache-2.0 OR BSL-1.0 - Apache-2.0 OR MIT - Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT - BSD-2-Clause OR Apache-2.0 OR MIT - MIT - MIT OR Apache-2.0 - MPL-2.0 - Unlicense OR MIT +((MIT OR Apache-2.0) AND Unicode-DFS-2016) AND +(0BSD OR MIT OR Apache-2.0) AND +(Apache-2.0) AND +(Apache-2.0 OR MIT) AND +(Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND +(BSD-2-Clause OR Apache-2.0 OR MIT) AND +(BSD-3-Clause) AND +(MIT) AND +(MIT OR Apache-2.0) AND +(MIT OR Zlib OR Apache-2.0) AND +(MPL-2.0) AND +(Unlicense OR MIT) } URL: https://gitlab.com/kraxel/virt-firmware-rs From c1c986ee4a2cd2bc7bf6ff058596161cf5d740ea Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 8 Jul 2026 14:36:18 +0100 Subject: [PATCH 27/33] No longer downgrade the dialoguer dependency --- downgrade-dialoguer.patch | 13 ------------- virt-firmware-rs.spec | 1 - 2 files changed, 14 deletions(-) delete mode 100644 downgrade-dialoguer.patch diff --git a/downgrade-dialoguer.patch b/downgrade-dialoguer.patch deleted file mode 100644 index cae1aa7..0000000 --- a/downgrade-dialoguer.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/efi-tools/Cargo.toml b/efi-tools/Cargo.toml -index 4cbf7ed1c4a5..95ace01b1822 100644 ---- a/efi-tools/Cargo.toml -+++ b/efi-tools/Cargo.toml -@@ -33,7 +33,7 @@ env_logger.workspace = true - log.workspace = true - uguid.workspace = true - --dialoguer = "0.12" -+dialoguer = "0.11" - glob = "0.3" - - virtfw-libefi = { workspace = true, features = [ "std", "sbdata", "x509" ] } diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index 26693e7..280b583 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -41,7 +41,6 @@ License: %{shrink: URL: https://gitlab.com/kraxel/virt-firmware-rs Source: https://gitlab.com/kraxel/%{name}/-/archive/v%{version}/%{name}-v%{version}.tar.gz -Patch1: downgrade-dialoguer.patch Patch2: update-generate-boot-csv.patch ExclusiveArch: x86_64 aarch64 riscv64 From cd95049191716a000908490984b35d5f83fd98b3 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 17 Jul 2026 08:32:16 +0000 Subject: [PATCH 28/33] Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild From 11b822c5e6e16103e766f85153a64006b5bd2797 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 22 Jul 2026 12:16:00 +0200 Subject: [PATCH 29/33] update to version 26.7 --- sources | 2 +- update-generate-boot-csv.patch | 92 ---------------------------------- virt-firmware-rs.spec | 4 +- 3 files changed, 2 insertions(+), 96 deletions(-) delete mode 100644 update-generate-boot-csv.patch diff --git a/sources b/sources index d9227df..0f01624 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (virt-firmware-rs-v26.6.tar.gz) = 9b59e80c147bd7eb3c5c921efb948def7fdf5029826481da30e8cb46295331b4679343382ee9d8c3b598d990639f1cfc1c560d6a498f15ff91df44e6ef0fed0c +SHA512 (virt-firmware-rs-v26.7.tar.gz) = 06061dc4a6a6a10c9b373db08a45acdbe799b96bfb418a03e7214f72a8f6db06c50126381680d0f022fbfdb60a763f346ec1939bf2eb392df2a45400e07b4510 diff --git a/update-generate-boot-csv.patch b/update-generate-boot-csv.patch deleted file mode 100644 index d0516a6..0000000 --- a/update-generate-boot-csv.patch +++ /dev/null @@ -1,92 +0,0 @@ -diff --git a/efi-tools/src/bin/generate-boot-csv.rs b/efi-tools/src/bin/generate-boot-csv.rs -index c3f74d9aa182..f940940bf321 100644 ---- a/efi-tools/src/bin/generate-boot-csv.rs -+++ b/efi-tools/src/bin/generate-boot-csv.rs -@@ -4,7 +4,7 @@ - - use clap::Parser; - use log::{debug, error, info}; --use std::path::PathBuf; -+use std::path::{Path, PathBuf}; - use std::process::ExitCode; - - use virtfw_efi_tools::shimcsv::write_boot_csv; -@@ -23,6 +23,10 @@ struct Args { - #[arg(long, value_name = "ESP")] - esp: Option, - -+ /// add efi binary -+ #[arg(long, value_name = "EFI")] -+ add: Vec, -+ - /// override csv output location - #[arg(long, value_name = "CSV")] - csv: Option, -@@ -32,6 +36,26 @@ struct Args { - cmdline: Option, - } - -+fn create_csv_line(esp_path: &Path, shim_name: &str, binary: &Path, cmdline: &str) -> String { -+ let efi = binary -+ .strip_prefix(esp_path) -+ .unwrap() -+ .display() -+ .to_string() -+ .replace("/", "\\"); -+ info!("efi: -> \\{efi}"); -+ let title = binary.file_name().unwrap().to_str().unwrap(); -+ let line = format!( -+ "{},{},\\{} {},{}\n", -+ shim_name, -+ title, -+ efi, -+ cmdline.trim(), -+ "Comment" -+ ); -+ line -+} -+ - fn main() -> ExitCode { - let args = Args::parse(); - -@@ -77,26 +101,24 @@ fn main() -> ExitCode { - - let mut csv = String::new(); - let esp_path = std::path::Path::new(&esp); -+ -+ for app in args.add { -+ if !app.starts_with(&esp) { -+ error!("{app} is not on esp ({esp})"); -+ return ExitCode::from(1); -+ } -+ let binary = std::path::Path::new(&app); -+ info!("add: {}", binary.display()); -+ let line = create_csv_line(esp_path, &shim_name, binary, ""); -+ csv.push_str(&line); -+ } -+ - for uki in glob::glob(&uki_glob).expect("uki glob failed").flatten() { - info!("uki: {}", uki.display()); -- let efi = uki -- .strip_prefix(esp_path) -- .unwrap() -- .display() -- .to_string() -- .replace("/", "\\"); -- info!("efi: -> \\{efi}"); -- let title = uki.file_name().unwrap().to_str().unwrap(); -- let line = format!( -- "{},{},\\{} {},{}\n", -- shim_name, -- title, -- efi, -- cmdline.trim(), -- "Comment" -- ); -+ let line = create_csv_line(esp_path, &shim_name, &uki, &cmdline); - csv.push_str(&line); - } -+ - if csv.is_empty() { - error!("no uki images found ({uki_glob})"); - return ExitCode::from(1); diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index 280b583..c5a0651 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -18,7 +18,7 @@ BuildRequires: rust-std-static-x86_64-unknown-uefi %endif Name: virt-firmware-rs -Version: 26.6 +Version: 26.7 Release: %autorelease Summary: Tools for EFI and virtual machine firmware @@ -41,8 +41,6 @@ License: %{shrink: URL: https://gitlab.com/kraxel/virt-firmware-rs Source: https://gitlab.com/kraxel/%{name}/-/archive/v%{version}/%{name}-v%{version}.tar.gz -Patch2: update-generate-boot-csv.patch - ExclusiveArch: x86_64 aarch64 riscv64 BuildRequires: cargo-rpm-macros >= 24 BuildRequires: pkgconfig(libudev) From cdb803ae4334415b456144db5f0bdab218f62337 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 26 Aug 2026 20:13:31 +0200 Subject: [PATCH 30/33] update to version 26.8 --- sources | 2 +- virt-firmware-rs.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sources b/sources index 0f01624..4de98a4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (virt-firmware-rs-v26.7.tar.gz) = 06061dc4a6a6a10c9b373db08a45acdbe799b96bfb418a03e7214f72a8f6db06c50126381680d0f022fbfdb60a763f346ec1939bf2eb392df2a45400e07b4510 +SHA512 (virt-firmware-rs-v26.8.tar.gz) = 4573b05f567f2b4e17b2f7a0f54dd154b16e55f5b773a52358d42ffc841086be0c7a9231fa66150d55b5da267187a62b19d382ed10bd0c4558a264cb7baad68d diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index c5a0651..a1f241f 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -18,7 +18,7 @@ BuildRequires: rust-std-static-x86_64-unknown-uefi %endif Name: virt-firmware-rs -Version: 26.7 +Version: 26.8 Release: %autorelease Summary: Tools for EFI and virtual machine firmware From 62ea0bff67b69d126f5f9e973bb16854026232fa Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 26 Aug 2026 21:03:20 +0200 Subject: [PATCH 31/33] go back to x509-cert 0.2.x --- downgrade-x509.patch | 59 +++++++++++++++++++++++++++++++++++++++++++ virt-firmware-rs.spec | 1 + 2 files changed, 60 insertions(+) create mode 100644 downgrade-x509.patch diff --git a/downgrade-x509.patch b/downgrade-x509.patch new file mode 100644 index 0000000..3d666ce --- /dev/null +++ b/downgrade-x509.patch @@ -0,0 +1,59 @@ +commit 3649197e09d9718d051911cc091c77372301160d +Author: Gerd Hoffmann +Date: Wed Aug 26 14:50:57 2026 +0200 + + update x509-cert and der crates + +diff --git b/Cargo.toml a/Cargo.toml +index a305c979c154..ad669ce1f4d6 100644 +--- b/Cargo.toml ++++ a/Cargo.toml +@@ -24,7 +24,7 @@ byteorder = { version = "1", default-features = false } + clap = { version = "4.5.4", features = [ "derive", "wrap_help" ] } + clap_mangen = { version = ">= 0.2.30, < 0.4" } + env_logger = { version = "0.11" } +-der = { version = "0.8" } ++der = { version = "0.7.10" } + fdt = { version = "0.1" } + igvm = { version = "0.4" } + igvm_defs = { version = "0.4" } +@@ -38,7 +38,7 @@ spin = { version = ">= 0.10, < 0.13" } + uefi = { version = "0.39" } + uefi-raw = { version = "0.15.1" } + uguid = { version = "2" } +-x509-cert = { version = "0.3", default-features = false } ++x509-cert = { version = "0.2.5", default-features = false } + zerocopy = { version = "0.8", features = [ "derive" ] } + + virtfw-libhw = { path = "libhw", version = "0.5.1" } +diff --git b/libefi/src/sb/certs/info.rs a/libefi/src/sb/certs/info.rs +index f7d570acc904..0cd31bc376cc 100644 +--- b/libefi/src/sb/certs/info.rs ++++ a/libefi/src/sb/certs/info.rs +@@ -20,8 +20,8 @@ pub struct CertInfo { + + impl CertInfo { + fn attr(name: &Name, oid: &ObjectIdentifier) -> Option { +- for attr in name.iter_rdn() { +- if attr.iter().any(|x| x.oid == *oid) { ++ for attr in name.0.iter() { ++ if attr.0.iter().any(|x| x.oid == *oid) { + return Some(attr.to_string()); + } + } +@@ -30,11 +30,10 @@ impl CertInfo { + + pub fn new_from_der(der: &[u8]) -> Option { + let cert = Certificate::from_der(der).ok()?; +- let tbs = cert.tbs_certificate(); +- let subject = tbs.subject(); +- let issuer = tbs.issuer(); +- let not_before = tbs.validity().not_before.to_date_time(); +- let not_after = tbs.validity().not_after.to_date_time(); ++ let subject = cert.tbs_certificate.subject; ++ let issuer = cert.tbs_certificate.issuer; ++ let not_before = cert.tbs_certificate.validity.not_before.to_date_time(); ++ let not_after = cert.tbs_certificate.validity.not_after.to_date_time(); + let info = Self { + subject: subject.to_string(), + subject_cn: Self::attr(&subject, &OID_CN), diff --git a/virt-firmware-rs.spec b/virt-firmware-rs.spec index a1f241f..ba8db1f 100644 --- a/virt-firmware-rs.spec +++ b/virt-firmware-rs.spec @@ -40,6 +40,7 @@ License: %{shrink: URL: https://gitlab.com/kraxel/virt-firmware-rs Source: https://gitlab.com/kraxel/%{name}/-/archive/v%{version}/%{name}-v%{version}.tar.gz +Patch1: downgrade-x509.patch ExclusiveArch: x86_64 aarch64 riscv64 BuildRequires: cargo-rpm-macros >= 24 From 4dfdd12778299b3fa7a8faf390490a0c8ddaf669 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 26 Aug 2026 23:34:52 +0200 Subject: [PATCH 32/33] update downgrade patch --- downgrade-x509.patch | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/downgrade-x509.patch b/downgrade-x509.patch index 3d666ce..77c6beb 100644 --- a/downgrade-x509.patch +++ b/downgrade-x509.patch @@ -1,13 +1,15 @@ -commit 3649197e09d9718d051911cc091c77372301160d +commit 285a14d811c4baf71543cc3f6b7147b36ad97d52 Author: Gerd Hoffmann -Date: Wed Aug 26 14:50:57 2026 +0200 +Date: Wed Aug 26 23:33:54 2026 +0200 - update x509-cert and der crates + Revert "update x509-cert and der crates" + + This reverts commit 3649197e09d9718d051911cc091c77372301160d. -diff --git b/Cargo.toml a/Cargo.toml -index a305c979c154..ad669ce1f4d6 100644 ---- b/Cargo.toml -+++ a/Cargo.toml +diff --git a/Cargo.toml b/Cargo.toml +index 2a38a77d0a32..ed0d5a2f7314 100644 +--- a/Cargo.toml ++++ b/Cargo.toml @@ -24,7 +24,7 @@ byteorder = { version = "1", default-features = false } clap = { version = "4.5.4", features = [ "derive", "wrap_help" ] } clap_mangen = { version = ">= 0.2.30, < 0.4" } @@ -25,11 +27,11 @@ index a305c979c154..ad669ce1f4d6 100644 +x509-cert = { version = "0.2.5", default-features = false } zerocopy = { version = "0.8", features = [ "derive" ] } - virtfw-libhw = { path = "libhw", version = "0.5.1" } -diff --git b/libefi/src/sb/certs/info.rs a/libefi/src/sb/certs/info.rs -index f7d570acc904..0cd31bc376cc 100644 ---- b/libefi/src/sb/certs/info.rs -+++ a/libefi/src/sb/certs/info.rs + virtfw-libhw = { path = "libhw", version = "0.5.2" } +diff --git a/libefi/src/sb/certs/info.rs b/libefi/src/sb/certs/info.rs +index 5926898c0e9d..e61341094c1c 100644 +--- a/libefi/src/sb/certs/info.rs ++++ b/libefi/src/sb/certs/info.rs @@ -20,8 +20,8 @@ pub struct CertInfo { impl CertInfo { @@ -56,4 +58,4 @@ index f7d570acc904..0cd31bc376cc 100644 + let not_after = cert.tbs_certificate.validity.not_after.to_date_time(); let info = Self { subject: subject.to_string(), - subject_cn: Self::attr(&subject, &OID_CN), + subject_cn: Self::attr(subject, &OID_CN), From 7ea0207b32a7ba1ede65cfd687f195343f870dc9 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Thu, 27 Aug 2026 07:37:37 +0200 Subject: [PATCH 33/33] update downgrade patch #2 --- downgrade-x509.patch | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/downgrade-x509.patch b/downgrade-x509.patch index 77c6beb..76a94bf 100644 --- a/downgrade-x509.patch +++ b/downgrade-x509.patch @@ -1,11 +1,3 @@ -commit 285a14d811c4baf71543cc3f6b7147b36ad97d52 -Author: Gerd Hoffmann -Date: Wed Aug 26 23:33:54 2026 +0200 - - Revert "update x509-cert and der crates" - - This reverts commit 3649197e09d9718d051911cc091c77372301160d. - diff --git a/Cargo.toml b/Cargo.toml index 2a38a77d0a32..ed0d5a2f7314 100644 --- a/Cargo.toml @@ -29,7 +21,7 @@ index 2a38a77d0a32..ed0d5a2f7314 100644 virtfw-libhw = { path = "libhw", version = "0.5.2" } diff --git a/libefi/src/sb/certs/info.rs b/libefi/src/sb/certs/info.rs -index 5926898c0e9d..e61341094c1c 100644 +index 5926898c0e9d..0cd31bc376cc 100644 --- a/libefi/src/sb/certs/info.rs +++ b/libefi/src/sb/certs/info.rs @@ -20,8 +20,8 @@ pub struct CertInfo { @@ -43,7 +35,7 @@ index 5926898c0e9d..e61341094c1c 100644 return Some(attr.to_string()); } } -@@ -30,11 +30,10 @@ impl CertInfo { +@@ -30,16 +30,15 @@ impl CertInfo { pub fn new_from_der(der: &[u8]) -> Option { let cert = Certificate::from_der(der).ok()?; @@ -58,4 +50,11 @@ index 5926898c0e9d..e61341094c1c 100644 + let not_after = cert.tbs_certificate.validity.not_after.to_date_time(); let info = Self { subject: subject.to_string(), - subject_cn: Self::attr(subject, &OID_CN), +- subject_cn: Self::attr(subject, &OID_CN), ++ subject_cn: Self::attr(&subject, &OID_CN), + issuer: issuer.to_string(), +- issuer_cn: Self::attr(issuer, &OID_CN), ++ issuer_cn: Self::attr(&issuer, &OID_CN), + not_before: EfiTime::from(¬_before), + not_after: EfiTime::from(¬_after), + };