spec: Merge %build and %install with RHEL behavior
The fedora specific stuff stays the same, but the x86_64 and aarch64 builds look different but should be identical, except for some additional builds and filenames Signed-off-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
parent
0c0d315499
commit
2fb8072ecc
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"description": "UEFI firmware for aarch64, verbose logs",
|
"description": "UEFI firmware for ARM64 virtual machines, verbose logs",
|
||||||
"interface-types": [
|
"interface-types": [
|
||||||
"uefi"
|
"uefi"
|
||||||
],
|
],
|
31
edk2-aarch64.json
Normal file
31
edk2-aarch64.json
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"description": "UEFI firmware for ARM64 virtual machines",
|
||||||
|
"interface-types": [
|
||||||
|
"uefi"
|
||||||
|
],
|
||||||
|
"mapping": {
|
||||||
|
"device": "flash",
|
||||||
|
"executable": {
|
||||||
|
"filename": "/usr/share/edk2/aarch64/QEMU_EFI-silent-pflash.raw",
|
||||||
|
"format": "raw"
|
||||||
|
},
|
||||||
|
"nvram-template": {
|
||||||
|
"filename": "/usr/share/edk2/aarch64/vars-template-pflash.raw",
|
||||||
|
"format": "raw"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"architecture": "aarch64",
|
||||||
|
"machines": [
|
||||||
|
"virt-*"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"features": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"description": "OVMF for x86_64, without SB, without SMM, with empty varstore",
|
"description": "OVMF with SEV-ES support",
|
||||||
"interface-types": [
|
"interface-types": [
|
||||||
"uefi"
|
"uefi"
|
||||||
],
|
],
|
||||||
"mapping": {
|
"mapping": {
|
||||||
"device": "flash",
|
"device": "flash",
|
||||||
"executable": {
|
"executable": {
|
||||||
"filename": "/usr/share/edk2/ovmf/OVMF_CODE.fd",
|
"filename": "/usr/share/edk2/ovmf/OVMF_CODE.cc.fd",
|
||||||
"format": "raw"
|
"format": "raw"
|
||||||
},
|
},
|
||||||
"nvram-template": {
|
"nvram-template": {
|
||||||
@ -18,14 +18,13 @@
|
|||||||
{
|
{
|
||||||
"architecture": "x86_64",
|
"architecture": "x86_64",
|
||||||
"machines": [
|
"machines": [
|
||||||
"pc-i440fx-*",
|
"pc-q35-rhel8.5.0"
|
||||||
"pc-q35-*"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"features": [
|
"features": [
|
||||||
"acpi-s3",
|
|
||||||
"amd-sev",
|
"amd-sev",
|
||||||
|
"amd-sev-es",
|
||||||
"verbose-dynamic"
|
"verbose-dynamic"
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"description": "OVMF for x86_64, with SB+SMM, SB enabled, MS certs enrolled",
|
"description": "OVMF with SB+SMM, SB enabled, MS certs enrolled",
|
||||||
"interface-types": [
|
"interface-types": [
|
||||||
"uefi"
|
"uefi"
|
||||||
],
|
],
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"description": "OVMF for x86_64, with SB+SMM, empty varstore",
|
"description": "OVMF with SB+SMM, empty varstore",
|
||||||
"interface-types": [
|
"interface-types": [
|
||||||
"uefi"
|
"uefi"
|
||||||
],
|
],
|
232
edk2.spec
232
edk2.spec
@ -59,15 +59,17 @@ Source3: ovmf-vars-generator
|
|||||||
Source4: LICENSE.qosb
|
Source4: LICENSE.qosb
|
||||||
Source5: RedHatSecureBootPkKek1.pem
|
Source5: RedHatSecureBootPkKek1.pem
|
||||||
|
|
||||||
|
Source10: edk2-aarch64-verbose.json
|
||||||
|
Source11: edk2-aarch64.json
|
||||||
|
Source12: edk2-ovmf-sb.json
|
||||||
|
Source13: edk2-ovmf.json
|
||||||
|
Source14: edk2-ovmf-cc.json
|
||||||
|
|
||||||
# Fedora specific sources
|
# Fedora specific sources
|
||||||
Source50: softfloat-%{softfloat_version}.tar.xz
|
Source50: softfloat-%{softfloat_version}.tar.xz
|
||||||
Source52: 40-edk2-ovmf-x64-sb-enrolled.json
|
|
||||||
Source53: 50-edk2-ovmf-x64-sb.json
|
|
||||||
Source54: 60-edk2-ovmf-x64.json
|
|
||||||
Source55: 40-edk2-ovmf-ia32-sb-enrolled.json
|
Source55: 40-edk2-ovmf-ia32-sb-enrolled.json
|
||||||
Source56: 50-edk2-ovmf-ia32-sb.json
|
Source56: 50-edk2-ovmf-ia32-sb.json
|
||||||
Source57: 60-edk2-ovmf-ia32.json
|
Source57: 60-edk2-ovmf-ia32.json
|
||||||
Source58: 70-edk2-aarch64-verbose.json
|
|
||||||
Source59: 70-edk2-arm-verbose.json
|
Source59: 70-edk2-arm-verbose.json
|
||||||
|
|
||||||
Patch0008: 0008-BaseTools-do-not-build-BrotliCompress-RH-only.patch
|
Patch0008: 0008-BaseTools-do-not-build-BrotliCompress-RH-only.patch
|
||||||
@ -246,6 +248,7 @@ git config am.keepcr true
|
|||||||
%autosetup -T -D -n edk2-%{GITCOMMIT} -S git_am
|
%autosetup -T -D -n edk2-%{GITCOMMIT} -S git_am
|
||||||
|
|
||||||
cp -a -- %{SOURCE1} %{SOURCE3} .
|
cp -a -- %{SOURCE1} %{SOURCE3} .
|
||||||
|
cp -a -- %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} .
|
||||||
tar -C CryptoPkg/Library/OpensslLib -a -f %{SOURCE2} -x
|
tar -C CryptoPkg/Library/OpensslLib -a -f %{SOURCE2} -x
|
||||||
|
|
||||||
# Format the Red Hat-issued certificate that is to be enrolled as both Platform
|
# Format the Red Hat-issued certificate that is to be enrolled as both Platform
|
||||||
@ -272,41 +275,35 @@ tar -xf %{SOURCE50} --strip-components=1 --directory ArmPkg/Library/ArmSoftFloat
|
|||||||
%build
|
%build
|
||||||
export PYTHON_COMMAND=%{__python3}
|
export PYTHON_COMMAND=%{__python3}
|
||||||
source ./edksetup.sh
|
source ./edksetup.sh
|
||||||
|
%make_build -C "$EDK_TOOLS_PATH" \
|
||||||
|
EXTRA_OPTFLAGS="%{optflags}" \
|
||||||
|
EXTRA_LDFLAGS="%{__global_ldflags}"
|
||||||
|
|
||||||
# compiler
|
SMP_MFLAGS="%{?_smp_mflags}"
|
||||||
CC_FLAGS="-t GCC5"
|
if [[ x"$SMP_MFLAGS" = x-j* ]]; then
|
||||||
|
CC_FLAGS="$CC_FLAGS -n ${SMP_MFLAGS#-j}"
|
||||||
# parallel builds
|
elif [ -n "%{?jobs}" ]; then
|
||||||
JOBS="%{?_smp_mflags}"
|
CC_FLAGS="$CC_FLAGS -n %{?jobs}"
|
||||||
JOBS="${JOBS#-j}"
|
|
||||||
if test "$JOBS" != ""; then
|
|
||||||
CC_FLAGS="${CC_FLAGS} -n $JOBS"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# common features
|
CC_FLAGS="$CC_FLAGS --cmd-len=65536 -t %{TOOLCHAIN} -b DEBUG --hash"
|
||||||
CC_FLAGS="$CC_FLAGS --cmd-len=65536 -b DEBUG --hash"
|
|
||||||
CC_FLAGS="$CC_FLAGS -D NETWORK_IP6_ENABLE"
|
CC_FLAGS="$CC_FLAGS -D NETWORK_IP6_ENABLE"
|
||||||
CC_FLAGS="$CC_FLAGS -D NETWORK_TLS_ENABLE"
|
CC_FLAGS="$CC_FLAGS -D NETWORK_HTTP_BOOT_ENABLE -D NETWORK_TLS_ENABLE"
|
||||||
CC_FLAGS="$CC_FLAGS -D NETWORK_HTTP_BOOT_ENABLE"
|
|
||||||
CC_FLAGS="$CC_FLAGS -D TPM_ENABLE"
|
CC_FLAGS="$CC_FLAGS -D TPM_ENABLE"
|
||||||
|
|
||||||
# ovmf features
|
|
||||||
OVMF_FLAGS="${CC_FLAGS}"
|
OVMF_FLAGS="${CC_FLAGS}"
|
||||||
|
%if %{defined rhel}
|
||||||
|
OVMF_FLAGS="${OVMF_FLAGS} -D FD_SIZE_4MB"
|
||||||
|
OVMF_FLAGS="${OVMF_FLAGS} -D PVSCSI_ENABLE=FALSE -D MPT_SCSI_ENABLE=FALSE"
|
||||||
|
%else
|
||||||
OVMF_FLAGS="${OVMF_FLAGS} -D FD_SIZE_2MB"
|
OVMF_FLAGS="${OVMF_FLAGS} -D FD_SIZE_2MB"
|
||||||
|
%endif
|
||||||
|
|
||||||
# ovmf + secure boot features
|
|
||||||
OVMF_SB_FLAGS="${OVMF_FLAGS}"
|
OVMF_SB_FLAGS="${OVMF_FLAGS}"
|
||||||
OVMF_SB_FLAGS="${OVMF_SB_FLAGS} -D SECURE_BOOT_ENABLE"
|
OVMF_SB_FLAGS="${OVMF_SB_FLAGS} -D SECURE_BOOT_ENABLE"
|
||||||
OVMF_SB_FLAGS="${OVMF_SB_FLAGS} -D SMM_REQUIRE"
|
OVMF_SB_FLAGS="${OVMF_SB_FLAGS} -D SMM_REQUIRE"
|
||||||
OVMF_SB_FLAGS="${OVMF_SB_FLAGS} -D EXCLUDE_SHELL_FROM_FD"
|
OVMF_SB_FLAGS="${OVMF_SB_FLAGS} -D EXCLUDE_SHELL_FROM_FD"
|
||||||
|
|
||||||
# arm firmware features
|
|
||||||
ARM_FLAGS="${CC_FLAGS}"
|
|
||||||
|
|
||||||
unset MAKEFLAGS
|
|
||||||
%make_build -C BaseTools \
|
|
||||||
EXTRA_OPTFLAGS="%{optflags}" \
|
|
||||||
EXTRA_LDFLAGS="%{__global_ldflags}"
|
|
||||||
sed -i -e 's/-Werror//' Conf/tools_def.txt
|
sed -i -e 's/-Werror//' Conf/tools_def.txt
|
||||||
|
|
||||||
|
|
||||||
@ -322,7 +319,7 @@ build_iso() {
|
|||||||
UEFI_SHELL_BINARY=${dir}/Shell.efi
|
UEFI_SHELL_BINARY=${dir}/Shell.efi
|
||||||
ENROLLER_BINARY=${dir}/EnrollDefaultKeys.efi
|
ENROLLER_BINARY=${dir}/EnrollDefaultKeys.efi
|
||||||
UEFI_SHELL_IMAGE=uefi_shell.img
|
UEFI_SHELL_IMAGE=uefi_shell.img
|
||||||
ISO_IMAGE=UefiShell.iso
|
ISO_IMAGE=${dir}/UefiShell.iso
|
||||||
|
|
||||||
UEFI_SHELL_BINARY_BNAME=$(basename -- "$UEFI_SHELL_BINARY")
|
UEFI_SHELL_BINARY_BNAME=$(basename -- "$UEFI_SHELL_BINARY")
|
||||||
UEFI_SHELL_SIZE=$(stat --format=%s -- "$UEFI_SHELL_BINARY")
|
UEFI_SHELL_SIZE=$(stat --format=%s -- "$UEFI_SHELL_BINARY")
|
||||||
@ -351,43 +348,48 @@ build_iso() {
|
|||||||
-o "$ISO_IMAGE" "$UEFI_SHELL_IMAGE"
|
-o "$ISO_IMAGE" "$UEFI_SHELL_IMAGE"
|
||||||
}
|
}
|
||||||
|
|
||||||
# build ovmf (x64)
|
|
||||||
%if %{build_ovmf}
|
%if %{build_ovmf}
|
||||||
mkdir -p ovmf
|
# Build with neither SB nor SMM; include UEFI shell.
|
||||||
build ${OVMF_FLAGS} -a X64 -p OvmfPkg/OvmfPkgX64.dsc
|
build ${OVMF_FLAGS} -a X64 \
|
||||||
cp Build/OvmfX64/*/FV/OVMF_*.fd ovmf/
|
-p OvmfPkg/OvmfPkgX64.dsc
|
||||||
rm -rf Build/OvmfX64
|
|
||||||
|
|
||||||
# build ovmf (x64) with secure boot
|
# Build with SB and SMM; exclude UEFI shell.
|
||||||
build ${OVMF_SB_FLAGS} -a IA32 -a X64 -p OvmfPkg/OvmfPkgIa32X64.dsc
|
build ${OVMF_SB_FLAGS} -a IA32 -a X64 \
|
||||||
cp Build/Ovmf3264/*/FV/OVMF_CODE.fd ovmf/OVMF_CODE.secboot.fd
|
-p OvmfPkg/OvmfPkgIa32X64.dsc
|
||||||
|
|
||||||
# build ovmf (x64) shell iso with EnrollDefaultKeys
|
# Sanity check: the varstore templates must be identical.
|
||||||
cp Build/Ovmf3264/*/X64/Shell.efi ovmf/
|
cmp Build/OvmfX64/DEBUG_%{TOOLCHAIN}/FV/OVMF_VARS.fd \
|
||||||
cp Build/Ovmf3264/*/X64/EnrollDefaultKeys.efi ovmf/
|
Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/FV/OVMF_VARS.fd
|
||||||
build_iso ovmf/
|
|
||||||
mv UefiShell.iso ovmf
|
# Prepare an ISO image that boots the UEFI shell.
|
||||||
|
build_iso Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/X64
|
||||||
|
|
||||||
# Enroll the default certificates in a separate variable store template.
|
# Enroll the default certificates in a separate variable store template.
|
||||||
%{__python3} ovmf-vars-generator --verbose --verbose \
|
%{__python3} ovmf-vars-generator --verbose --verbose \
|
||||||
--qemu-binary %{qemu_binary} \
|
--qemu-binary %{qemu_binary} \
|
||||||
--ovmf-binary ovmf/OVMF_CODE.secboot.fd \
|
--ovmf-binary Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/FV/OVMF_CODE.fd \
|
||||||
--ovmf-template-vars ovmf/OVMF_VARS.fd \
|
--ovmf-template-vars Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/FV/OVMF_VARS.fd \
|
||||||
--uefi-shell-iso ovmf/UefiShell.iso \
|
--uefi-shell-iso Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/X64/UefiShell.iso \
|
||||||
--oem-string "$(< PkKek1.oemstr)" \
|
--oem-string "$(< PkKek1.oemstr)" \
|
||||||
--skip-testing \
|
--skip-testing \
|
||||||
ovmf/OVMF_VARS.secboot.fd
|
Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/FV/OVMF_VARS.secboot.fd
|
||||||
|
|
||||||
# endif build_ovmf
|
# endif build_ovmf
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# build aarch64 firmware
|
|
||||||
%if %{build_aarch64}
|
%if %{build_aarch64}
|
||||||
mkdir -p aarch64
|
# Build with a verbose debug mask first, and stash the binary.
|
||||||
build $ARM_FLAGS -a AARCH64 -p ArmVirtPkg/ArmVirtQemu.dsc
|
build ${CC_FLAGS} -a AARCH64 \
|
||||||
cp Build/ArmVirtQemu-AARCH64/DEBUG_*/FV/*.fd aarch64
|
-p ArmVirtPkg/ArmVirtQemu.dsc \
|
||||||
dd of="aarch64/QEMU_EFI-pflash.raw" if="/dev/zero" bs=1M count=64
|
-D DEBUG_PRINT_ERROR_LEVEL=0x8040004F
|
||||||
dd of="aarch64/QEMU_EFI-pflash.raw" if="aarch64/QEMU_EFI.fd" conv=notrunc
|
cp -a Build/ArmVirtQemu-AARCH64/DEBUG_%{TOOLCHAIN}/FV/QEMU_EFI.fd \
|
||||||
dd of="aarch64/vars-template-pflash.raw" if="/dev/zero" bs=1M count=64
|
Build/ArmVirtQemu-AARCH64/DEBUG_%{TOOLCHAIN}/FV/QEMU_EFI.verbose.fd
|
||||||
|
|
||||||
|
# Rebuild with a silent (errors only) debug mask.
|
||||||
|
build ${CC_FLAGS} -a AARCH64 \
|
||||||
|
-p ArmVirtPkg/ArmVirtQemu.dsc \
|
||||||
|
-D DEBUG_PRINT_ERROR_LEVEL=0x80000000
|
||||||
# endif build_aarch64
|
# endif build_aarch64
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -398,7 +400,7 @@ mkdir -p ovmf-ia32
|
|||||||
build ${OVMF_FLAGS} -a IA32 -p OvmfPkg/OvmfPkgIa32.dsc
|
build ${OVMF_FLAGS} -a IA32 -p OvmfPkg/OvmfPkgIa32.dsc
|
||||||
cp Build/OvmfIa32/*/FV/OVMF_CODE*.fd ovmf-ia32/
|
cp Build/OvmfIa32/*/FV/OVMF_CODE*.fd ovmf-ia32/
|
||||||
# cp VARS files from from ovmf/, which are all we need
|
# cp VARS files from from ovmf/, which are all we need
|
||||||
cp ovmf/OVMF_VARS*.fd ovmf-ia32/
|
cp -a Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/FV/OVMF_VARS*.fd ovmf-ia32
|
||||||
rm -rf Build/OvmfIa32
|
rm -rf Build/OvmfIa32
|
||||||
|
|
||||||
# build ovmf-ia32 with secure boot
|
# build ovmf-ia32 with secure boot
|
||||||
@ -407,12 +409,14 @@ cp Build/OvmfIa32/*/FV/OVMF_CODE.fd ovmf-ia32/OVMF_CODE.secboot.fd
|
|||||||
|
|
||||||
# build ovmf-ia32 shell iso with EnrollDefaultKeys
|
# build ovmf-ia32 shell iso with EnrollDefaultKeys
|
||||||
build_iso Build/OvmfIa32/DEBUG_%{TOOLCHAIN}/IA32
|
build_iso Build/OvmfIa32/DEBUG_%{TOOLCHAIN}/IA32
|
||||||
mv UefiShell.iso ovmf-ia32
|
mv Build/OvmfIa32/DEBUG_%{TOOLCHAIN}/IA32/UefiShell.iso ovmf-ia32
|
||||||
|
cp -a Build/OvmfIa32/DEBUG_%{TOOLCHAIN}/IA32/Shell.efi ovmf-ia32
|
||||||
|
cp -a Build/OvmfIa32/DEBUG_%{TOOLCHAIN}/IA32/EnrollDefaultKeys.efi ovmf-ia32
|
||||||
|
|
||||||
|
|
||||||
# build ARMv7 firmware
|
# build ARMv7 firmware
|
||||||
mkdir -p arm
|
mkdir -p arm
|
||||||
build $ARM_FLAGS -a ARM -p ArmVirtPkg/ArmVirtQemu.dsc
|
build ${CC_FLAGS} -a ARM -p ArmVirtPkg/ArmVirtQemu.dsc
|
||||||
cp Build/ArmVirtQemu-ARM/DEBUG_*/FV/*.fd arm
|
cp Build/ArmVirtQemu-ARM/DEBUG_*/FV/*.fd arm
|
||||||
dd of="arm/QEMU_EFI-pflash.raw" if="/dev/zero" bs=1M count=64
|
dd of="arm/QEMU_EFI-pflash.raw" if="/dev/zero" bs=1M count=64
|
||||||
dd of="arm/QEMU_EFI-pflash.raw" if="arm/QEMU_EFI.fd" conv=notrunc
|
dd of="arm/QEMU_EFI-pflash.raw" if="arm/QEMU_EFI.fd" conv=notrunc
|
||||||
@ -424,11 +428,12 @@ dd of="arm/vars-template-pflash.raw" if="/dev/zero" bs=1M count=64
|
|||||||
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
|
|
||||||
cp -a OvmfPkg/License.txt License.OvmfPkg.txt
|
cp -a OvmfPkg/License.txt License.OvmfPkg.txt
|
||||||
cp -a CryptoPkg/Library/OpensslLib/openssl/LICENSE LICENSE.openssl
|
cp -a CryptoPkg/Library/OpensslLib/openssl/LICENSE LICENSE.openssl
|
||||||
mkdir -p %{buildroot}/%{_datadir}/qemu/firmware
|
mkdir -p %{buildroot}%{_datadir}/qemu/firmware
|
||||||
mkdir -p %{buildroot}%{_datadir}/%{name}
|
|
||||||
|
|
||||||
|
# install the tools
|
||||||
mkdir -p %{buildroot}%{_bindir} \
|
mkdir -p %{buildroot}%{_bindir} \
|
||||||
%{buildroot}%{_datadir}/%{name}/Conf \
|
%{buildroot}%{_datadir}/%{name}/Conf \
|
||||||
%{buildroot}%{_datadir}/%{name}/Scripts
|
%{buildroot}%{_datadir}/%{name}/Scripts
|
||||||
@ -445,32 +450,87 @@ install BaseTools/Scripts/GccBase.lds \
|
|||||||
|
|
||||||
|
|
||||||
%if %{build_ovmf}
|
%if %{build_ovmf}
|
||||||
cp -a ovmf %{buildroot}%{_datadir}/%{name}
|
mkdir -p \
|
||||||
# Libvirt hardcodes this directory name
|
%{buildroot}%{_datadir}/OVMF \
|
||||||
mkdir %{buildroot}%{_datadir}/OVMF
|
%{buildroot}%{_datadir}/%{name}/ovmf
|
||||||
ln -sf ../%{name}/ovmf/OVMF_CODE.fd %{buildroot}%{_datadir}/OVMF
|
|
||||||
ln -sf ../%{name}/ovmf/OVMF_CODE.secboot.fd %{buildroot}%{_datadir}/OVMF
|
|
||||||
ln -sf ../%{name}/ovmf/OVMF_VARS.fd %{buildroot}%{_datadir}/OVMF
|
|
||||||
ln -sf ../%{name}/ovmf/OVMF_VARS.secboot.fd %{buildroot}%{_datadir}/OVMF
|
|
||||||
ln -sf ../%{name}/ovmf/UefiShell.iso %{buildroot}%{_datadir}/OVMF
|
|
||||||
|
|
||||||
for f in %{_sourcedir}/*edk2-ovmf-x64*.json; do
|
install -m 0644 Build/OvmfX64/DEBUG_%{TOOLCHAIN}/FV/OVMF_CODE.fd \
|
||||||
install -pm 644 $f %{buildroot}/%{_datadir}/qemu/firmware
|
%{buildroot}%{_datadir}/%{name}/ovmf/OVMF_CODE.fd
|
||||||
done
|
install -m 0644 Build/OvmfX64/DEBUG_%{TOOLCHAIN}/FV/OVMF_CODE.fd \
|
||||||
|
%{buildroot}%{_datadir}/%{name}/ovmf/OVMF_CODE.cc.fd
|
||||||
|
install -m 0644 Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/FV/OVMF_CODE.fd \
|
||||||
|
%{buildroot}%{_datadir}/%{name}/ovmf/OVMF_CODE.secboot.fd
|
||||||
|
|
||||||
|
install -m 0644 Build/OvmfX64/DEBUG_%{TOOLCHAIN}/FV/OVMF_VARS.fd \
|
||||||
|
%{buildroot}%{_datadir}/%{name}/ovmf/OVMF_VARS.fd
|
||||||
|
install -m 0644 Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/FV/OVMF_VARS.secboot.fd \
|
||||||
|
%{buildroot}%{_datadir}/%{name}/ovmf/OVMF_VARS.secboot.fd
|
||||||
|
install -m 0644 Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/X64/UefiShell.iso \
|
||||||
|
%{buildroot}%{_datadir}/%{name}/ovmf/UefiShell.iso
|
||||||
|
|
||||||
|
ln -s ../%{name}/ovmf/OVMF_CODE.fd %{buildroot}%{_datadir}/OVMF
|
||||||
|
ln -s ../%{name}/ovmf/OVMF_CODE.secboot.fd %{buildroot}%{_datadir}/OVMF/
|
||||||
|
ln -s ../%{name}/ovmf/OVMF_VARS.fd %{buildroot}%{_datadir}/OVMF/
|
||||||
|
ln -s ../%{name}/ovmf/OVMF_VARS.secboot.fd %{buildroot}%{_datadir}/OVMF/
|
||||||
|
ln -s ../%{name}/ovmf/UefiShell.iso %{buildroot}%{_datadir}/OVMF/
|
||||||
|
|
||||||
|
install -m 0644 Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/X64/Shell.efi \
|
||||||
|
%{buildroot}%{_datadir}/%{name}/ovmf/Shell.efi
|
||||||
|
install -m 0644 Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/X64/EnrollDefaultKeys.efi \
|
||||||
|
%{buildroot}%{_datadir}/%{name}/ovmf/EnrollDefaultKeys.efi
|
||||||
|
|
||||||
|
install -m 0644 edk2-ovmf-sb.json \
|
||||||
|
%{buildroot}%{_datadir}/qemu/firmware/40-edk2-ovmf-sb.json
|
||||||
|
install -m 0644 edk2-ovmf.json \
|
||||||
|
%{buildroot}%{_datadir}/qemu/firmware/50-edk2-ovmf.json
|
||||||
|
install -m 0644 edk2-ovmf-cc.json \
|
||||||
|
%{buildroot}%{_datadir}/qemu/firmware/50-edk2-ovmf-cc.json
|
||||||
# endif build_ovmf
|
# endif build_ovmf
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
|
||||||
%if %{build_aarch64}
|
%if %{build_aarch64}
|
||||||
cp -a aarch64 %{buildroot}%{_datadir}/%{name}
|
mkdir -p \
|
||||||
# Libvirt hardcodes this directory name
|
%{buildroot}%{_datadir}/AAVMF \
|
||||||
mkdir %{buildroot}%{_datadir}/AAVMF
|
%{buildroot}%{_datadir}/%{name}/aarch64
|
||||||
ln -sf ../%{name}/aarch64/QEMU_EFI-pflash.raw %{buildroot}%{_datadir}/AAVMF/AAVMF_CODE.fd
|
|
||||||
ln -sf ../%{name}/aarch64/vars-template-pflash.raw %{buildroot}%{_datadir}/AAVMF/AAVMF_VARS.fd
|
|
||||||
|
|
||||||
for f in %{_sourcedir}/*edk2-aarch64*.json; do
|
# Pad and install the verbose binary.
|
||||||
install -pm 644 $f %{buildroot}/%{_datadir}/qemu/firmware
|
cat Build/ArmVirtQemu-AARCH64/DEBUG_%{TOOLCHAIN}/FV/QEMU_EFI.verbose.fd \
|
||||||
done
|
/dev/zero \
|
||||||
|
| head -c 64m \
|
||||||
|
> %{buildroot}%{_datadir}/%{name}/aarch64/QEMU_EFI-pflash.raw
|
||||||
|
|
||||||
|
# Pad and install the silent (default) binary.
|
||||||
|
cat Build/ArmVirtQemu-AARCH64/DEBUG_%{TOOLCHAIN}/FV/QEMU_EFI.fd \
|
||||||
|
/dev/zero \
|
||||||
|
| head -c 64m \
|
||||||
|
> %{buildroot}%{_datadir}/%{name}/aarch64/QEMU_EFI-silent-pflash.raw
|
||||||
|
|
||||||
|
# Create varstore template.
|
||||||
|
cat Build/ArmVirtQemu-AARCH64/DEBUG_%{TOOLCHAIN}/FV/QEMU_VARS.fd \
|
||||||
|
/dev/zero \
|
||||||
|
| head -c 64m \
|
||||||
|
> %{buildroot}%{_datadir}/%{name}/aarch64/vars-template-pflash.raw
|
||||||
|
|
||||||
|
ln -s ../%{name}/aarch64/QEMU_EFI-pflash.raw \
|
||||||
|
%{buildroot}%{_datadir}/AAVMF/AAVMF_CODE.verbose.fd
|
||||||
|
ln -s ../%{name}/aarch64/QEMU_EFI-silent-pflash.raw \
|
||||||
|
%{buildroot}%{_datadir}/AAVMF/AAVMF_CODE.fd
|
||||||
|
ln -s ../%{name}/aarch64/vars-template-pflash.raw \
|
||||||
|
%{buildroot}%{_datadir}/AAVMF/AAVMF_VARS.fd
|
||||||
|
|
||||||
|
chmod 0644 -- %{buildroot}%{_datadir}/AAVMF/AAVMF_*.fd
|
||||||
|
|
||||||
|
install -m 0644 Build/ArmVirtQemu-AARCH64/DEBUG_%{TOOLCHAIN}/FV/QEMU_EFI.verbose.fd \
|
||||||
|
%{buildroot}%{_datadir}/%{name}/aarch64/QEMU_EFI.fd
|
||||||
|
install -m 0644 Build/ArmVirtQemu-AARCH64/DEBUG_%{TOOLCHAIN}/FV/QEMU_EFI.fd \
|
||||||
|
%{buildroot}%{_datadir}/%{name}/aarch64/QEMU_EFI.silent.fd
|
||||||
|
install -m 0644 Build/ArmVirtQemu-AARCH64/DEBUG_%{TOOLCHAIN}/FV/QEMU_VARS.fd \
|
||||||
|
%{buildroot}%{_datadir}/%{name}/aarch64/QEMU_VARS.fd
|
||||||
|
|
||||||
|
install -m 0644 edk2-aarch64.json \
|
||||||
|
%{buildroot}%{_datadir}/qemu/firmware/60-edk2-aarch64.json
|
||||||
|
install -m 0644 edk2-aarch64-verbose.json \
|
||||||
|
%{buildroot}%{_datadir}/qemu/firmware/70-edk2-aarch64-verbose.json
|
||||||
# endif build_aarch64
|
# endif build_aarch64
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -488,7 +548,7 @@ done
|
|||||||
cp -a arm %{buildroot}%{_datadir}/%{name}
|
cp -a arm %{buildroot}%{_datadir}/%{name}
|
||||||
ln -sf ../%{name}/arm/QEMU_EFI-pflash.raw %{buildroot}%{_datadir}/AAVMF/AAVMF32_CODE.fd
|
ln -sf ../%{name}/arm/QEMU_EFI-pflash.raw %{buildroot}%{_datadir}/AAVMF/AAVMF32_CODE.fd
|
||||||
|
|
||||||
for f in %{_sourcedir}/*edk2-arm*.json; do
|
for f in %{_sourcedir}/*edk2-arm-*.json; do
|
||||||
install -pm 644 $f %{buildroot}/%{_datadir}/qemu/firmware
|
install -pm 644 $f %{buildroot}/%{_datadir}/qemu/firmware
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -516,6 +576,7 @@ install -p ovmf-vars-generator %{buildroot}%{_bindir}
|
|||||||
|
|
||||||
|
|
||||||
%check
|
%check
|
||||||
|
|
||||||
%if %{qosb_testing}
|
%if %{qosb_testing}
|
||||||
# Of the installed host kernels, boot the one with the highest Version-Release
|
# Of the installed host kernels, boot the one with the highest Version-Release
|
||||||
# under OVMF, and check if it prints "Secure boot enabled".
|
# under OVMF, and check if it prints "Secure boot enabled".
|
||||||
@ -524,13 +585,13 @@ KERNEL_IMG=$(rpm -q -l $KERNEL_PKG | egrep '^/lib/modules/[^/]+/vmlinuz$')
|
|||||||
|
|
||||||
%{__python3} ovmf-vars-generator --verbose --verbose \
|
%{__python3} ovmf-vars-generator --verbose --verbose \
|
||||||
--qemu-binary %{qemu_binary} \
|
--qemu-binary %{qemu_binary} \
|
||||||
--ovmf-binary ovmf/OVMF_CODE.secboot.fd \
|
--ovmf-binary Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/FV/OVMF_CODE.fd \
|
||||||
--ovmf-template-vars ovmf/OVMF_VARS.fd \
|
--ovmf-template-vars Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/FV/OVMF_VARS.fd \
|
||||||
--uefi-shell-iso ovmf/UefiShell.iso \
|
--uefi-shell-iso Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/X64/UefiShell.iso \
|
||||||
--kernel-path $KERNEL_IMG \
|
--kernel-path $KERNEL_IMG \
|
||||||
--skip-enrollment \
|
--skip-enrollment \
|
||||||
--no-download \
|
--no-download \
|
||||||
ovmf/OVMF_VARS.secboot.fd
|
Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/FV/OVMF_VARS.secboot.fd
|
||||||
|
|
||||||
# endif qosb_testing
|
# endif qosb_testing
|
||||||
%endif
|
%endif
|
||||||
@ -550,6 +611,7 @@ KERNEL_IMG=$(rpm -q -l $KERNEL_PKG | egrep '^/lib/modules/[^/]+/vmlinuz$')
|
|||||||
%dir %{_datadir}/OVMF/
|
%dir %{_datadir}/OVMF/
|
||||||
%dir %{_datadir}/%{name}/ovmf/
|
%dir %{_datadir}/%{name}/ovmf/
|
||||||
%{_datadir}/%{name}/ovmf/OVMF_CODE.fd
|
%{_datadir}/%{name}/ovmf/OVMF_CODE.fd
|
||||||
|
%{_datadir}/%{name}/ovmf/OVMF_CODE.cc.fd
|
||||||
%{_datadir}/%{name}/ovmf/OVMF_CODE.secboot.fd
|
%{_datadir}/%{name}/ovmf/OVMF_CODE.secboot.fd
|
||||||
%{_datadir}/%{name}/ovmf/OVMF_VARS.fd
|
%{_datadir}/%{name}/ovmf/OVMF_VARS.fd
|
||||||
%{_datadir}/%{name}/ovmf/OVMF_VARS.secboot.fd
|
%{_datadir}/%{name}/ovmf/OVMF_VARS.secboot.fd
|
||||||
@ -561,9 +623,9 @@ KERNEL_IMG=$(rpm -q -l $KERNEL_PKG | egrep '^/lib/modules/[^/]+/vmlinuz$')
|
|||||||
%{_datadir}/OVMF/UefiShell.iso
|
%{_datadir}/OVMF/UefiShell.iso
|
||||||
%{_datadir}/%{name}/ovmf/Shell.efi
|
%{_datadir}/%{name}/ovmf/Shell.efi
|
||||||
%{_datadir}/%{name}/ovmf/EnrollDefaultKeys.efi
|
%{_datadir}/%{name}/ovmf/EnrollDefaultKeys.efi
|
||||||
%{_datadir}/qemu/firmware/40-edk2-ovmf-x64-sb-enrolled.json
|
%{_datadir}/qemu/firmware/40-edk2-ovmf-sb.json
|
||||||
%{_datadir}/qemu/firmware/50-edk2-ovmf-x64-sb.json
|
%{_datadir}/qemu/firmware/50-edk2-ovmf-cc.json
|
||||||
%{_datadir}/qemu/firmware/60-edk2-ovmf-x64.json
|
%{_datadir}/qemu/firmware/50-edk2-ovmf.json
|
||||||
# endif build_ovmf
|
# endif build_ovmf
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -573,11 +635,15 @@ KERNEL_IMG=$(rpm -q -l $KERNEL_PKG | egrep '^/lib/modules/[^/]+/vmlinuz$')
|
|||||||
%dir %{_datadir}/AAVMF/
|
%dir %{_datadir}/AAVMF/
|
||||||
%dir %{_datadir}/%{name}/aarch64/
|
%dir %{_datadir}/%{name}/aarch64/
|
||||||
%{_datadir}/%{name}/aarch64/QEMU_EFI-pflash.raw
|
%{_datadir}/%{name}/aarch64/QEMU_EFI-pflash.raw
|
||||||
|
%{_datadir}/%{name}/aarch64/QEMU_EFI-silent-pflash.raw
|
||||||
%{_datadir}/%{name}/aarch64/vars-template-pflash.raw
|
%{_datadir}/%{name}/aarch64/vars-template-pflash.raw
|
||||||
|
%{_datadir}/AAVMF/AAVMF_CODE.verbose.fd
|
||||||
%{_datadir}/AAVMF/AAVMF_CODE.fd
|
%{_datadir}/AAVMF/AAVMF_CODE.fd
|
||||||
%{_datadir}/AAVMF/AAVMF_VARS.fd
|
%{_datadir}/AAVMF/AAVMF_VARS.fd
|
||||||
%{_datadir}/%{name}/aarch64/QEMU_EFI.fd
|
%{_datadir}/%{name}/aarch64/QEMU_EFI.fd
|
||||||
|
%{_datadir}/%{name}/aarch64/QEMU_EFI.silent.fd
|
||||||
%{_datadir}/%{name}/aarch64/QEMU_VARS.fd
|
%{_datadir}/%{name}/aarch64/QEMU_VARS.fd
|
||||||
|
%{_datadir}/qemu/firmware/60-edk2-aarch64.json
|
||||||
%{_datadir}/qemu/firmware/70-edk2-aarch64-verbose.json
|
%{_datadir}/qemu/firmware/70-edk2-aarch64-verbose.json
|
||||||
# endif build_aarch64
|
# endif build_aarch64
|
||||||
%endif
|
%endif
|
||||||
|
Loading…
Reference in New Issue
Block a user