Compare commits

...
Sign in to create a new pull request.

22 commits

Author SHA1 Message Date
Gerd Hoffmann
03d890b473 go back to x509-cert 0.2.x 2026-08-27 10:40:44 +02:00
Gerd Hoffmann
d08ce6dc7a update to version 26.8 2026-08-27 10:40:44 +02:00
Gerd Hoffmann
7620837cf2 update to version 26.7 2026-07-23 05:41:39 +02:00
Benjamin A. Beasley
468d2054d8 No longer downgrade the dialoguer dependency 2026-07-10 06:48:30 +01:00
Gerd Hoffmann
fb1f1552f2 update License: tag 2026-07-10 06:48:29 +01:00
Gerd Hoffmann
b24cd30de3 tmt: rework test plans 2026-07-10 06:48:28 +01:00
Gerd Hoffmann
159c27ff79 add update-generate-boot-csv.patch 2026-07-10 06:48:27 +01:00
Gerd Hoffmann
c16c92be2a update to version 26.6
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2026-06-08 17:10:47 +02:00
Gerd Hoffmann
11939f3731 drop experimental workspace 2026-03-25 12:14:13 +01:00
Gerd Hoffmann
393cbc0e27 update downgrade-dialoguer.patch 2026-03-25 12:14:12 +01:00
Gerd Hoffmann
c5ef0b7ca2 update to version 26.4
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2026-03-25 12:14:12 +01:00
Gerd Hoffmann
ddaf30c8dd update to version 26.3 2026-03-04 16:42:28 +01:00
Gerd Hoffmann
50c4fe664c enable authenticode for the correct crate 2026-02-03 15:43:40 +01:00
Gerd Hoffmann
0cf5700c15 enable authendicode support 2026-02-03 15:43:40 +01:00
Gerd Hoffmann
9337697cec tmt: pick one kernel in case multiple are present 2026-02-03 15:43:40 +01:00
Gerd Hoffmann
b41a579f7b enable tmt tests 2026-01-15 09:56:39 +01:00
Gerd Hoffmann
358509c84f update to version 26.1 2026-01-15 09:56:01 +01:00
Gerd Hoffmann
dda3c3e97f update to version 25.12 2025-12-04 13:24:18 +01:00
Gerd Hoffmann
52e31a8c9e update to version 25.11 2025-11-20 07:51:14 +01:00
Gerd Hoffmann
9e4c9a02f7 update to version 25.10 2025-10-15 15:55:27 +02:00
Cole Robinson
8325dbc7b8 Fix --without check
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2025-10-15 15:55:19 +02:00
Gerd Hoffmann
7991ee54f3 update to version 25.9 2025-09-22 15:41:09 +02:00
6 changed files with 149 additions and 18 deletions

1
.fmf/version Normal file
View file

@ -0,0 +1 @@
1

60
downgrade-x509.patch Normal file
View file

@ -0,0 +1,60 @@
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" }
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.2" }
diff --git a/libefi/src/sb/certs/info.rs b/libefi/src/sb/certs/info.rs
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 {
impl CertInfo {
fn attr(name: &Name, oid: &ObjectIdentifier) -> Option<String> {
- 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,16 +30,15 @@ impl CertInfo {
pub fn new_from_der(der: &[u8]) -> Option<Self> {
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),
+ 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(&not_before),
not_after: EfiTime::from(&not_after),
};

8
gating.yaml Normal file
View file

@ -0,0 +1,8 @@
--- !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}

46
plans.fmf Normal file
View file

@ -0,0 +1,46 @@
summary: run tests from distgit tarball
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

View file

@ -1 +1 @@
SHA512 (virt-firmware-rs-v25.8.tar.gz) = 6e5cba78a5117acb8488a559a52d34285e108974889ca332094b21119ec09c112308cea6ec3fec17031c43cf1dd3e8567a19ebb4776a5fa9c4976f783e3de6a2
SHA512 (virt-firmware-rs-v26.8.tar.gz) = 4573b05f567f2b4e17b2f7a0f54dd154b16e55f5b773a52358d42ffc841086be0c7a9231fa66150d55b5da267187a62b19d382ed10bd0c4558a264cb7baad68d

View file

@ -18,26 +18,31 @@ BuildRequires: rust-std-static-x86_64-unknown-uefi
%endif
Name: virt-firmware-rs
Version: 25.8
Version: 26.8
Release: %autorelease
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
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
BuildRequires: pkgconfig(libudev)
@ -59,20 +64,22 @@ 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 '/varstore/d'
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'
%endif
%generate_buildrequires
%cargo_generate_buildrequires
%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-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
@ -85,9 +92,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/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}
@ -97,14 +106,18 @@ 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
%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
%cargo_test -- --package virtfw-varstore
%endif
%files
@ -115,9 +128,12 @@ echo "skip tests on bigendian"
%{_bindir}/generate-boot-csv
%{_bindir}/list-sb-vars
%{_bindir}/mini-bootcfg
%{_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}