Add qosb to generate pre-enrolled Secure Boot VARS files
Signed-off-by: Patrick Uiterwijk <puiterwijk@redhat.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
This commit is contained in:
parent
d173a3b48a
commit
0792202285
74
edk2.spec
74
edk2.spec
@ -1,7 +1,13 @@
|
|||||||
%global edk2_date 20171011
|
%global edk2_date 20171011
|
||||||
%global edk2_githash 92d07e4
|
%global edk2_githash 92d07e4
|
||||||
%global openssl_version 1.1.0e
|
%global openssl_version 1.1.0e
|
||||||
|
%global qosb_version 1.1.2
|
||||||
|
|
||||||
|
%define qosb_testing 0
|
||||||
|
|
||||||
|
%ifarch x86_64
|
||||||
|
%define qosb_testing 1
|
||||||
|
%endif
|
||||||
%if 0%{?fedora:1}
|
%if 0%{?fedora:1}
|
||||||
%define cross 1
|
%define cross 1
|
||||||
%endif
|
%endif
|
||||||
@ -29,7 +35,7 @@
|
|||||||
|
|
||||||
Name: edk2
|
Name: edk2
|
||||||
Version: %{edk2_date}git%{edk2_githash}
|
Version: %{edk2_date}git%{edk2_githash}
|
||||||
Release: 5%{dist}
|
Release: 6%{dist}
|
||||||
Summary: EFI Development Kit II
|
Summary: EFI Development Kit II
|
||||||
|
|
||||||
Group: Applications/Emulators
|
Group: Applications/Emulators
|
||||||
@ -38,6 +44,7 @@ URL: http://www.tianocore.org/edk2/
|
|||||||
Source0: edk2-%{edk2_date}-%{edk2_githash}.tar.xz
|
Source0: edk2-%{edk2_date}-%{edk2_githash}.tar.xz
|
||||||
Source1: openssl-%{openssl_version}-hobbled.tar.xz
|
Source1: openssl-%{openssl_version}-hobbled.tar.xz
|
||||||
Source2: ovmf-whitepaper-c770f8c.txt
|
Source2: ovmf-whitepaper-c770f8c.txt
|
||||||
|
Source3: https://github.com/puiterwijk/qemu-ovmf-secureboot/archive/v%{qosb_version}/qemu-ovmf-secureboot-%{qosb_version}.tar.gz
|
||||||
Source10: hobble-openssl
|
Source10: hobble-openssl
|
||||||
Source11: build-iso.sh
|
Source11: build-iso.sh
|
||||||
Source12: update-tarball.sh
|
Source12: update-tarball.sh
|
||||||
@ -110,6 +117,19 @@ BuildRequires: nasm
|
|||||||
BuildRequires: qemu-img
|
BuildRequires: qemu-img
|
||||||
BuildRequires: genisoimage
|
BuildRequires: genisoimage
|
||||||
|
|
||||||
|
# These are for QOSB
|
||||||
|
BuildRequires: python3-requests
|
||||||
|
BuildRequires: qemu
|
||||||
|
%if %{?qosb_testing}
|
||||||
|
# This is used for testing the enrollment: builds are run in a chroot, lacking
|
||||||
|
# a kernel. The testing is only performed on x86_64 for now, but we can't make
|
||||||
|
# the BuildRequires only on a specific arch, as that'd come through in the SRPM
|
||||||
|
# NOTE: The actual enrollment needs to happen in all builds for all architectures,
|
||||||
|
# because OVMF is built as noarch, which means that koji enforces that the build
|
||||||
|
# results don't actually differ per arch, and then it picks a random arches' build
|
||||||
|
# for the actual RPM.
|
||||||
|
BuildRequires: kernel-core
|
||||||
|
%endif
|
||||||
|
|
||||||
%description
|
%description
|
||||||
EDK II is a development code base for creating UEFI drivers, applications
|
EDK II is a development code base for creating UEFI drivers, applications
|
||||||
@ -141,6 +161,15 @@ BuildArch: noarch
|
|||||||
This package documents the tools that are needed to
|
This package documents the tools that are needed to
|
||||||
build EFI executables and ROMs using the GNU tools.
|
build EFI executables and ROMs using the GNU tools.
|
||||||
|
|
||||||
|
%package qosb
|
||||||
|
Summary: Tool to enroll secureboot
|
||||||
|
Group: Development/Tools
|
||||||
|
Buildarch: noarch
|
||||||
|
%description qosb
|
||||||
|
This package contains QOSB (QEMU OVMF Secure Boot), which can enroll OVMF
|
||||||
|
variable files to enforce Secure Boot.
|
||||||
|
|
||||||
|
|
||||||
%if 0%{?build_ovmf_x64:1}
|
%if 0%{?build_ovmf_x64:1}
|
||||||
%package ovmf
|
%package ovmf
|
||||||
Summary: Open Virtual Machine Firmware
|
Summary: Open Virtual Machine Firmware
|
||||||
@ -200,6 +229,11 @@ cp -a -- %{SOURCE2} .
|
|||||||
(cd .. && tar -xvf %{SOURCE1})
|
(cd .. && tar -xvf %{SOURCE1})
|
||||||
cp CryptoPkg/Library/OpensslLib/openssl/LICENSE LICENSE.openssl
|
cp CryptoPkg/Library/OpensslLib/openssl/LICENSE LICENSE.openssl
|
||||||
|
|
||||||
|
# Extract QOSB
|
||||||
|
tar -xvf %{SOURCE3}
|
||||||
|
mv qemu-ovmf-secureboot-%{qosb_version}/README.md README.qosb
|
||||||
|
mv qemu-ovmf-secureboot-%{qosb_version}/LICENSE LICENSE.qosb
|
||||||
|
|
||||||
%autopatch -p1
|
%autopatch -p1
|
||||||
base64 --decode < MdeModulePkg/Logo/Logo-OpenSSL.bmp.b64 > MdeModulePkg/Logo/Logo-OpenSSL.bmp
|
base64 --decode < MdeModulePkg/Logo/Logo-OpenSSL.bmp.b64 > MdeModulePkg/Logo/Logo-OpenSSL.bmp
|
||||||
|
|
||||||
@ -264,6 +298,15 @@ cp Build/Ovmf3264/*/FV/OVMF_CODE.fd ovmf/OVMF_CODE.secboot.fd
|
|||||||
cp Build/Ovmf3264/*/X64/Shell.efi ovmf/
|
cp Build/Ovmf3264/*/X64/Shell.efi ovmf/
|
||||||
cp Build/Ovmf3264/*/X64/EnrollDefaultKeys.efi ovmf
|
cp Build/Ovmf3264/*/X64/EnrollDefaultKeys.efi ovmf
|
||||||
sh %{_sourcedir}/build-iso.sh ovmf/
|
sh %{_sourcedir}/build-iso.sh ovmf/
|
||||||
|
|
||||||
|
# Build enrolled VARS file
|
||||||
|
python3 qemu-ovmf-secureboot-%{qosb_version}/ovmf-vars-generator \
|
||||||
|
--qemu-binary /usr/bin/qemu-system-x86_64 \
|
||||||
|
--skip-testing \
|
||||||
|
--ovmf-binary ovmf/OVMF_CODE.secboot.fd \
|
||||||
|
--ovmf-template-vars ovmf/OVMF_VARS.fd \
|
||||||
|
--uefi-shell-iso ovmf/UefiShell.iso \
|
||||||
|
ovmf/OVMF_VARS.secboot.fd
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
|
||||||
@ -306,6 +349,23 @@ dd of="arm/QEMU_EFI-pflash.raw" if="arm/QEMU_EFI.fd" conv=notrunc
|
|||||||
dd of="arm/vars-template-pflash.raw" if="/dev/zero" bs=1M count=64
|
dd of="arm/vars-template-pflash.raw" if="/dev/zero" bs=1M count=64
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%check
|
||||||
|
%if 0%{?build_ovmf_x64:1}
|
||||||
|
%if 0%{?qosb_testing}
|
||||||
|
# Verify enrolled VARS file
|
||||||
|
python3 qemu-ovmf-secureboot-%{qosb_version}/ovmf-vars-generator \
|
||||||
|
--qemu-binary /usr/bin/qemu-system-x86_64 \
|
||||||
|
--skip-enrollment \
|
||||||
|
--print-output \
|
||||||
|
--ovmf-binary ovmf/OVMF_CODE.secboot.fd \
|
||||||
|
--ovmf-template-vars ovmf/OVMF_VARS.fd \
|
||||||
|
--uefi-shell-iso ovmf/UefiShell.iso \
|
||||||
|
--no-download \
|
||||||
|
--kernel-path `rpm -ql kernel-core | grep "\/vmlinuz$" -m 1` \
|
||||||
|
ovmf/OVMF_VARS.secboot.fd
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
%install
|
%install
|
||||||
mkdir -p %{buildroot}%{_bindir} \
|
mkdir -p %{buildroot}%{_bindir} \
|
||||||
%{buildroot}%{_datadir}/%{name}/Conf \
|
%{buildroot}%{_datadir}/%{name}/Conf \
|
||||||
@ -337,6 +397,7 @@ mkdir %{buildroot}/usr/share/OVMF
|
|||||||
ln -sf ../%{name}/ovmf/OVMF_CODE.fd %{buildroot}/usr/share/OVMF
|
ln -sf ../%{name}/ovmf/OVMF_CODE.fd %{buildroot}/usr/share/OVMF
|
||||||
ln -sf ../%{name}/ovmf/OVMF_CODE.secboot.fd %{buildroot}/usr/share/OVMF
|
ln -sf ../%{name}/ovmf/OVMF_CODE.secboot.fd %{buildroot}/usr/share/OVMF
|
||||||
ln -sf ../%{name}/ovmf/OVMF_VARS.fd %{buildroot}/usr/share/OVMF
|
ln -sf ../%{name}/ovmf/OVMF_VARS.fd %{buildroot}/usr/share/OVMF
|
||||||
|
ln -sf ../%{name}/ovmf/OVMF_VARS.secboot.fd %{buildroot}/usr/share/OVMF
|
||||||
ln -sf ../%{name}/ovmf/UefiShell.iso %{buildroot}/usr/share/OVMF
|
ln -sf ../%{name}/ovmf/UefiShell.iso %{buildroot}/usr/share/OVMF
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?build_ovmf_ia32:1}
|
%if 0%{?build_ovmf_ia32:1}
|
||||||
@ -354,6 +415,8 @@ cp -a arm %{buildroot}/usr/share/%{name}
|
|||||||
ln -sf ../%{name}/arm/QEMU_EFI-pflash.raw %{buildroot}/usr/share/AAVMF/AAVMF32_CODE.fd
|
ln -sf ../%{name}/arm/QEMU_EFI-pflash.raw %{buildroot}/usr/share/AAVMF/AAVMF32_CODE.fd
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
install qemu-ovmf-secureboot-%{qosb_version}/ovmf-vars-generator %{buildroot}%{_bindir}
|
||||||
|
|
||||||
|
|
||||||
%files tools
|
%files tools
|
||||||
%license License.txt
|
%license License.txt
|
||||||
@ -397,6 +460,11 @@ ln -sf ../%{name}/arm/QEMU_EFI-pflash.raw %{buildroot}/usr/share/AAVMF/
|
|||||||
%files tools-doc
|
%files tools-doc
|
||||||
%doc BaseTools/UserManuals/*.rtf
|
%doc BaseTools/UserManuals/*.rtf
|
||||||
|
|
||||||
|
%files qosb
|
||||||
|
%license LICENSE.qosb
|
||||||
|
%doc README.qosb
|
||||||
|
%{_bindir}/ovmf-vars-generator
|
||||||
|
|
||||||
%if 0%{?build_ovmf_x64:1}
|
%if 0%{?build_ovmf_x64:1}
|
||||||
%files ovmf
|
%files ovmf
|
||||||
%license OvmfPkg/License.txt
|
%license OvmfPkg/License.txt
|
||||||
@ -448,6 +516,10 @@ ln -sf ../%{name}/arm/QEMU_EFI-pflash.raw %{buildroot}/usr/share/AAVMF/
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Mar 30 2018 Patrick Uiterwijk <puiterwijk@redhat.com> - 20171011git92d07e4-6
|
||||||
|
- Add qemu-ovmf-secureboot (qosb)
|
||||||
|
- Generate pre-enrolled Secure Boot OVMF VARS files
|
||||||
|
|
||||||
* Wed Mar 07 2018 Paolo Bonzini <pbonzini@redhat.com> - 20171011git92d07e4-5
|
* Wed Mar 07 2018 Paolo Bonzini <pbonzini@redhat.com> - 20171011git92d07e4-5
|
||||||
- Fix GCC 8 compilation
|
- Fix GCC 8 compilation
|
||||||
- Replace dosfstools and mtools with qemu-img vvfat
|
- Replace dosfstools and mtools with qemu-img vvfat
|
||||||
|
Loading…
Reference in New Issue
Block a user