render / rpms / edk2

Forked from rpms/edk2 2 months ago
Clone

Blame edk2.spec

78c770
# https://fedoraproject.org/wiki/Changes/SetBuildFlagsBuildCheck
78c770
# breaks cross-building
78c770
%undefine _auto_set_build_flags
78c770
0c0d31
%if %{defined fedora}
0c0d31
# actual firmware builds support cross-compiling.  edk2-tools
0c0d31
# in theory should build everywhere without much trouble, but
0c0d31
# in practice the edk2 build system barfs on archs it doesn't know
0c0d31
# (such as ppc), so lets limit things to the known-good ones.
0c0d31
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
0c0d31
%else
0c0d31
ExclusiveArch: x86_64 aarch64
0c0d31
%endif
0c0d31
Gerd Hoffmann 5eb552
# edk2-stable202111
Gerd Hoffmann 5eb552
%define GITDATE        20211126
Gerd Hoffmann 5eb552
%define GITCOMMIT      bb1bba3d7767
59c3cd
%define TOOLCHAIN      GCC5
0c0d31
%define OPENSSL_VER    1.1.1k
Paolo Bonzini 9f191d
Patrick Uiterwijk 079220
%define qosb_testing 0
Patrick Uiterwijk 079220
%ifarch x86_64
Patrick Uiterwijk 079220
%define qosb_testing 1
Patrick Uiterwijk 079220
%endif
7bc840
Daniel P. Berrangé b20b83
%if %{defined fedora} || %{defined eln}
Daniel P. Berrangé b20b83
%define qemu_package qemu-system-x86-core
Daniel P. Berrangé b20b83
%define qemu_binary /usr/bin/qemu-system-x86_64
Daniel P. Berrangé b20b83
%else
0c0d31
%define qemu_package qemu-kvm-core >= 2.12.0-89
0c0d31
%define qemu_binary /usr/libexec/qemu-kvm
Daniel P. Berrangé b20b83
%endif
Paolo Bonzini 568a37
Daniel P. Berrangé b20b83
%if %{defined rhel}
0c0d31
%define build_ovmf 0
0c0d31
%define build_aarch64 0
Paolo Bonzini 568a37
%ifarch x86_64
0c0d31
  %define build_ovmf 1
Paolo Bonzini 568a37
%endif
Paolo Bonzini 568a37
%ifarch aarch64
0c0d31
  %define build_aarch64 1
Paolo Bonzini 568a37
%endif
0c0d31
%else
0c0d31
%define build_ovmf 1
0c0d31
%define build_aarch64 1
Paolo Bonzini 568a37
%endif
Paolo Bonzini 568a37
0c0d31
%global softfloat_version 20180726-gitb64af41
0c0d31
%define cross %{defined fedora}
00a201
%define disable_werror %{defined fedora}
0c0d31
0c0d31
59c3cd
Name:       edk2
59c3cd
Version:    %{GITDATE}git%{GITCOMMIT}
Fedora Release Engineering 6d1cf6
Release:    2%{?dist}
59c3cd
Summary:    UEFI firmware for 64-bit virtual machines
59c3cd
License:    BSD-2-Clause-Patent and OpenSSL and MIT
59c3cd
URL:        http://www.tianocore.org
59c3cd
59c3cd
# The source tarball is created using following commands:
Gerd Hoffmann 5eb552
# COMMIT=bb1bba3d7767
59c3cd
# git archive --format=tar --prefix=edk2-$COMMIT/ $COMMIT \
59c3cd
# | xz -9ev >/tmp/edk2-$COMMIT.tar.xz
59c3cd
Source0: edk2-%{GITCOMMIT}.tar.xz
59c3cd
Source1: ovmf-whitepaper-c770f8c.txt
59c3cd
Source2: openssl-rhel-bdd048e929dcfcf2f046d74e812e0e3d5fc58504.tar.xz
7bc840
Source3: ovmf-vars-generator
7bc840
Source4: LICENSE.qosb
7bc840
Source5: RedHatSecureBootPkKek1.pem
7bc840
2fb807
Source10: edk2-aarch64-verbose.json
2fb807
Source11: edk2-aarch64.json
2fb807
Source12: edk2-ovmf-sb.json
2fb807
Source13: edk2-ovmf.json
2fb807
Source14: edk2-ovmf-cc.json
2fb807
7bc840
# Fedora specific sources
7bc840
Source50: softfloat-%{softfloat_version}.tar.xz
7bc840
Source55: 40-edk2-ovmf-ia32-sb-enrolled.json
7bc840
Source56: 50-edk2-ovmf-ia32-sb.json
7bc840
Source57: 60-edk2-ovmf-ia32.json
e12f5e
Source58: edk2-ovmf-nosb.json
7bc840
Source59: 70-edk2-arm-verbose.json
Gerd Hoffmann ee5593
Source60: edk2-microvm.json
Kashyap Chamarthy 674b3c
59c3cd
Patch0008: 0008-BaseTools-do-not-build-BrotliCompress-RH-only.patch
59c3cd
Patch0009: 0009-MdeModulePkg-remove-package-private-Brotli-include-p.patch
59c3cd
Patch0011: 0011-OvmfPkg-increase-max-debug-message-length-to-512-RHE.patch
59c3cd
Patch0012: 0012-MdeModulePkg-TerminalDxe-add-other-text-resolutions-.patch
59c3cd
Patch0013: 0013-MdeModulePkg-TerminalDxe-set-xterm-resolution-on-mod.patch
59c3cd
Patch0014: 0014-OvmfPkg-take-PcdResizeXterm-from-the-QEMU-command-li.patch
59c3cd
Patch0015: 0015-ArmVirtPkg-take-PcdResizeXterm-from-the-QEMU-command.patch
59c3cd
Patch0016: 0016-OvmfPkg-allow-exclusion-of-the-shell-from-the-firmwa.patch
59c3cd
Patch0017: 0017-ArmPlatformPkg-introduce-fixed-PCD-for-early-hello-m.patch
59c3cd
Patch0018: 0018-ArmPlatformPkg-PrePeiCore-write-early-hello-message-.patch
59c3cd
Patch0019: 0019-ArmVirtPkg-set-early-hello-message-RH-only.patch
59c3cd
Patch0020: 0020-OvmfPkg-enable-DEBUG_VERBOSE-RHEL-only.patch
59c3cd
Patch0021: 0021-OvmfPkg-silence-DEBUG_VERBOSE-0x00400000-in-QemuVide.patch
59c3cd
Patch0022: 0022-ArmVirtPkg-silence-DEBUG_VERBOSE-0x00400000-in-QemuR.patch
59c3cd
Patch0023: 0023-OvmfPkg-QemuRamfbDxe-Do-not-report-DXE-failure-on-Aa.patch
59c3cd
Patch0024: 0024-OvmfPkg-silence-EFI_D_VERBOSE-0x00400000-in-NvmExpre.patch
59c3cd
Patch0025: 0025-CryptoPkg-OpensslLib-list-RHEL8-specific-OpenSSL-fil.patch
59c3cd
Patch0026: 0026-OvmfPkg-QemuKernelLoaderFsDxe-suppress-error-on-no-k.patch
59c3cd
Patch0027: 0027-SecurityPkg-Tcg2Dxe-suppress-error-on-no-swtpm-in-si.patch
Gerd Hoffmann 93714f
Patch0028: 0028-OvmfPkg-MemEncryptSevLib-Check-the-guest-type-before.patch
Gerd Hoffmann ee5593
Patch0029: 0029-OvmfPkg-Microvm-take-PcdResizeXterm-from-the-QEMU-co.patch
Paolo Bonzini 7ae6f1
089816
# Fedora specific
089816
Patch1000: fedora-Tweak-the-tools_def-to-support-cross-compiling.patch
089816
Gerd Hoffmann b0c3af
0c0d31
# python3-devel and libuuid-devel are required for building tools.
0c0d31
# python3-devel is also needed for varstore template generation and
0c0d31
# verification with "ovmf-vars-generator".
0c0d31
BuildRequires:  python3-devel
49ef31
BuildRequires:  libuuid-devel
0c0d31
BuildRequires:  /usr/bin/iasl
0c0d31
BuildRequires:  binutils gcc git gcc-c++ make
0c0d31
0c0d31
%if %{build_ovmf}
0c0d31
# Only OVMF includes 80x86 assembly files (*.nasm*).
Gerd Hoffmann b0c3af
BuildRequires:  nasm
0c0d31
0c0d31
# Only OVMF includes the Secure Boot feature, for which we need to separate out
0c0d31
# the UEFI shell.
6afa0e
BuildRequires:  dosfstools
6afa0e
BuildRequires:  mtools
0c0d31
BuildRequires:  xorriso
Paolo Bonzini 9f191d
0c0d31
# For generating the variable store template with the default certificates
0c0d31
# enrolled, we need the qemu-kvm executable.
0c0d31
BuildRequires:  %{qemu_package}
1db20e
7bc840
%if %{qosb_testing}
7bc840
# For verifying SB enablement in the above variable store template, we need a
7bc840
# guest kernel that prints "Secure boot enabled".
7bc840
BuildRequires: kernel-core >= 4.18.0-161
7bc840
BuildRequires: rpmdevtools
7bc840
%endif
7bc840
0c0d31
# endif build_ovmf
0c0d31
%endif
0c0d31
0c0d31
%if %{cross}
0c0d31
BuildRequires:  gcc-aarch64-linux-gnu
0c0d31
BuildRequires:  gcc-arm-linux-gnu
0c0d31
BuildRequires:  gcc-x86_64-linux-gnu
0c0d31
%endif
0c0d31
0c0d31
0c0d31
0c0d31
%package ovmf
0c0d31
Summary:    UEFI firmware for x86_64 virtual machines
0c0d31
BuildArch:  noarch
0c0d31
Provides:   OVMF = %{version}-%{release}
0c0d31
Obsoletes:  OVMF < 20180508-100.gitee3198e672e2.el7
0c0d31
0c0d31
# OVMF includes the Secure Boot and IPv6 features; it has a builtin OpenSSL
0c0d31
# library.
0c0d31
Provides:   bundled(openssl) = %{OPENSSL_VER}
0c0d31
License:    BSD-2-Clause-Patent and OpenSSL
0c0d31
0c0d31
# URL taken from the Maintainers.txt file.
0c0d31
URL:        http://www.tianocore.org/ovmf/
0c0d31
0c0d31
%description ovmf
0c0d31
OVMF (Open Virtual Machine Firmware) is a project to enable UEFI support for
0c0d31
Virtual Machines. This package contains a sample 64-bit UEFI firmware for QEMU
0c0d31
and KVM.
0c0d31
0c0d31
0c0d31
%package aarch64
0c0d31
Summary:    UEFI firmware for aarch64 virtual machines
0c0d31
BuildArch:  noarch
0c0d31
Provides:   AAVMF = %{version}-%{release}
0c0d31
Obsoletes:  AAVMF < 20180508-100.gitee3198e672e2.el7
0c0d31
0c0d31
# No Secure Boot for AAVMF yet, but we include OpenSSL for the IPv6 stack.
0c0d31
Provides:   bundled(openssl) = %{OPENSSL_VER}
0c0d31
License:    BSD-2-Clause-Patent and OpenSSL
0c0d31
0c0d31
# URL taken from the Maintainers.txt file.
0c0d31
URL:        https://github.com/tianocore/tianocore.github.io/wiki/ArmVirtPkg
0c0d31
0c0d31
%description aarch64
0c0d31
AAVMF (ARM Architecture Virtual Machine Firmware) is an EFI Development Kit II
0c0d31
platform that enables UEFI support for QEMU/KVM ARM Virtual Machines. This
0c0d31
package contains a 64-bit build.
7bc840
Paolo Bonzini 9f191d
Paolo Bonzini 9f191d
%package tools
49ef31
Summary:        EFI Development Kit II Tools
0c0d31
License:        BSD-2-Clause-Patent
0c0d31
URL:            https://github.com/tianocore/tianocore.github.io/wiki/BaseTools
Paolo Bonzini 9f191d
%description tools
Paolo Bonzini 9f191d
This package provides tools that are needed to
Paolo Bonzini 9f191d
build EFI executables and ROMs using the GNU tools.
Paolo Bonzini 9f191d
Paolo Bonzini 9f191d
%package tools-doc
49ef31
Summary:        Documentation for EFI Development Kit II Tools
Gerd Hoffmann b0c3af
BuildArch:      noarch
0c0d31
License:        BSD-2-Clause-Patent
0c0d31
URL:            https://github.com/tianocore/tianocore.github.io/wiki/BaseTools
Paolo Bonzini 9f191d
%description tools-doc
Paolo Bonzini 9f191d
This package documents the tools that are needed to
Paolo Bonzini 9f191d
build EFI executables and ROMs using the GNU tools.
Paolo Bonzini 9f191d
0c0d31
%description
0c0d31
EDK II is a modern, feature-rich, cross-platform firmware development
0c0d31
environment for the UEFI and PI specifications. This package contains sample
0c0d31
64-bit UEFI firmware builds for QEMU and KVM.
Patrick Uiterwijk 079220
Gerd Hoffmann b0c3af
0c0d31
%if %{defined fedora}
ad70d1
%package ovmf-ia32
ad70d1
Summary:        Open Virtual Machine Firmware
eb7115
License:        BSD-2-Clause-Patent and OpenSSL
Paolo Bonzini 83f3ca
Provides:       bundled(openssl)
ad70d1
BuildArch:      noarch
ad70d1
%description ovmf-ia32
ad70d1
EFI Development Kit II
ad70d1
Open Virtual Machine Firmware (ia32)
ad70d1
Gerd Hoffmann d31a56
%package arm
Gerd Hoffmann d31a56
Summary:        ARM Virtual Machine Firmware
Gerd Hoffmann d31a56
BuildArch:      noarch
Peter Robinson 5237d7
License:        BSD-2-Clause-Patent and OpenSSL
Gerd Hoffmann d31a56
%description arm
Gerd Hoffmann d31a56
EFI Development Kit II
Peter Robinson 5237d7
ARMv7 UEFI Firmware
0c0d31
0c0d31
%package qosb
0c0d31
Summary:        Tool to enroll secureboot
0c0d31
Requires:       python3
0c0d31
Buildarch:      noarch
0c0d31
%description qosb
0c0d31
This package contains QOSB (QEMU OVMF Secure Boot), which can enroll OVMF
0c0d31
variable files to enforce Secure Boot.
0c0d31
0c0d31
%package tools-python
0c0d31
Summary:        EFI Development Kit II Tools
0c0d31
Requires:       python3
0c0d31
BuildArch:      noarch
0c0d31
0c0d31
%description tools-python
0c0d31
This package provides tools that are needed to build EFI executables
0c0d31
and ROMs using the GNU tools.  You do not need to install this package;
0c0d31
you probably want to install edk2-tools only.
0c0d31
# endif fedora
Paolo Bonzini 568a37
%endif
Gerd Hoffmann d31a56
Gerd Hoffmann b0c3af
0c0d31
Paolo Bonzini 9f191d
%prep
59c3cd
# We needs some special git config options that %%autosetup won't give us.
59c3cd
# We init the git dir ourselves, then tell %%autosetup not to blow it away.
59c3cd
%setup -q -n edk2-%{GITCOMMIT}
59c3cd
git init -q
59c3cd
git config core.whitespace cr-at-eol
59c3cd
git config am.keepcr true
59c3cd
# -T is passed to %%setup to not re-extract the archive
59c3cd
# -D is passed to %%setup to not delete the existing archive dir
59c3cd
%autosetup -T -D -n edk2-%{GITCOMMIT} -S git_am
Paolo Bonzini 348500
7bc840
cp -a -- %{SOURCE1} %{SOURCE3} .
2fb807
cp -a -- %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} .
59c3cd
tar -C CryptoPkg/Library/OpensslLib -a -f %{SOURCE2} -x
7bc840
7bc840
# Format the Red Hat-issued certificate that is to be enrolled as both Platform
7bc840
# Key and first Key Exchange Key, as an SMBIOS OEM String. This means stripping
7bc840
# the PEM header and footer, and prepending the textual representation of the
7bc840
# GUID that identifies this particular OEM String to "EnrollDefaultKeys.efi",
7bc840
# plus the separator ":". For details, see
7bc840
# <https://bugzilla.tianocore.org/show_bug.cgi?id=1747> comments 2, 7, 14.
b9bff0
sed \
b9bff0
  -e 's/^-----BEGIN CERTIFICATE-----$/4e32566d-8e9e-4f52-81d3-5bb9715f9727:/' \
b9bff0
  -e '/^-----END CERTIFICATE-----$/d' \
7bc840
  %{SOURCE5} \
7bc840
  > PkKek1.oemstr
7bc840
0c0d31
# Done by %setup, but we do not use it for the auxiliary tarballs
0c0d31
chmod -Rf a+rX,u+w,g-w,o-w .
0c0d31
0c0d31
# Fedora specific
7bc840
cp -a -- %{SOURCE4} .
0c0d31
# extract softfloat into place
0c0d31
tar -xf %{SOURCE50} --strip-components=1 --directory ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3/
740797
740797
Gerd Hoffmann b0c3af
%build
0a0d66
export PYTHON_COMMAND=%{__python3}
Gerd Hoffmann b0c3af
source ./edksetup.sh
2fb807
%make_build -C "$EDK_TOOLS_PATH" \
2fb807
  EXTRA_OPTFLAGS="%{optflags}" \
2fb807
  EXTRA_LDFLAGS="%{__global_ldflags}"
Gerd Hoffmann b0c3af
2fb807
SMP_MFLAGS="%{?_smp_mflags}"
2fb807
if [[ x"$SMP_MFLAGS" = x-j* ]]; then
2fb807
        CC_FLAGS="$CC_FLAGS -n ${SMP_MFLAGS#-j}"
2fb807
elif [ -n "%{?jobs}" ]; then
2fb807
        CC_FLAGS="$CC_FLAGS -n %{?jobs}"
Gerd Hoffmann b0c3af
fi
Gerd Hoffmann b0c3af
2fb807
CC_FLAGS="$CC_FLAGS --cmd-len=65536 -t %{TOOLCHAIN} -b DEBUG --hash"
Paolo Bonzini 720bc3
CC_FLAGS="$CC_FLAGS -D NETWORK_IP6_ENABLE"
2fb807
CC_FLAGS="$CC_FLAGS -D NETWORK_HTTP_BOOT_ENABLE -D NETWORK_TLS_ENABLE"
032154
CC_FLAGS="$CC_FLAGS -D TPM_ENABLE"
Gerd Hoffmann b0c3af
Gerd Hoffmann b0c3af
OVMF_FLAGS="${CC_FLAGS}"
2fb807
%if %{defined rhel}
2fb807
OVMF_FLAGS="${OVMF_FLAGS} -D FD_SIZE_4MB"
2fb807
OVMF_FLAGS="${OVMF_FLAGS} -D PVSCSI_ENABLE=FALSE -D MPT_SCSI_ENABLE=FALSE"
2fb807
%else
410bf1
OVMF_FLAGS="${OVMF_FLAGS} -D FD_SIZE_2MB"
2fb807
%endif
Gerd Hoffmann b0c3af
Gerd Hoffmann b0c3af
OVMF_SB_FLAGS="${OVMF_FLAGS}"
Gerd Hoffmann b0c3af
OVMF_SB_FLAGS="${OVMF_SB_FLAGS} -D SECURE_BOOT_ENABLE"
Gerd Hoffmann b0c3af
OVMF_SB_FLAGS="${OVMF_SB_FLAGS} -D SMM_REQUIRE"
Gerd Hoffmann b0c3af
OVMF_SB_FLAGS="${OVMF_SB_FLAGS} -D EXCLUDE_SHELL_FROM_FD"
Gerd Hoffmann b0c3af
00a201
%if %{disable_werror}
Gerd Hoffmann 798d0f
sed -i -e 's/-Werror//' Conf/tools_def.txt
00a201
%endif
Gerd Hoffmann b0c3af
ad70d1
0c0d31
%if %{cross}
Paolo Bonzini 720bc3
export GCC5_IA32_PREFIX="x86_64-linux-gnu-"
Paolo Bonzini 720bc3
export GCC5_X64_PREFIX="x86_64-linux-gnu-"
Paolo Bonzini 720bc3
export GCC5_AARCH64_PREFIX="aarch64-linux-gnu-"
Paolo Bonzini 720bc3
export GCC5_ARM_PREFIX="arm-linux-gnu-"
Paolo Bonzini 568a37
%endif
Paolo Bonzini 568a37
6afa0e
build_iso() {
6afa0e
  dir="$1"
6afa0e
  UEFI_SHELL_BINARY=${dir}/Shell.efi
6afa0e
  ENROLLER_BINARY=${dir}/EnrollDefaultKeys.efi
6afa0e
  UEFI_SHELL_IMAGE=uefi_shell.img
2fb807
  ISO_IMAGE=${dir}/UefiShell.iso
6afa0e
6afa0e
  UEFI_SHELL_BINARY_BNAME=$(basename -- "$UEFI_SHELL_BINARY")
6afa0e
  UEFI_SHELL_SIZE=$(stat --format=%s -- "$UEFI_SHELL_BINARY")
6afa0e
  ENROLLER_SIZE=$(stat --format=%s -- "$ENROLLER_BINARY")
6afa0e
6afa0e
  # add 1MB then 10% for metadata
6afa0e
  UEFI_SHELL_IMAGE_KB=$((
6afa0e
    (UEFI_SHELL_SIZE + ENROLLER_SIZE + 1 * 1024 * 1024) * 11 / 10 / 1024
6afa0e
  ))
6afa0e
6afa0e
  # create non-partitioned FAT image
6afa0e
  rm -f -- "$UEFI_SHELL_IMAGE"
6afa0e
  mkdosfs -C "$UEFI_SHELL_IMAGE" -n UEFI_SHELL -- "$UEFI_SHELL_IMAGE_KB"
6afa0e
6afa0e
  # copy the shell binary into the FAT image
6afa0e
  export MTOOLS_SKIP_CHECK=1
6afa0e
  mmd   -i "$UEFI_SHELL_IMAGE"                       ::efi
6afa0e
  mmd   -i "$UEFI_SHELL_IMAGE"                       ::efi/boot
6afa0e
  mcopy -i "$UEFI_SHELL_IMAGE"  "$UEFI_SHELL_BINARY" ::efi/boot/bootx64.efi
6afa0e
  mcopy -i "$UEFI_SHELL_IMAGE"  "$ENROLLER_BINARY"   ::
6afa0e
  mdir  -i "$UEFI_SHELL_IMAGE"  -/                   ::
6afa0e
6afa0e
  # build ISO with FAT image file as El Torito EFI boot image
6afa0e
  mkisofs -input-charset ASCII -J -rational-rock \
6afa0e
    -e "$UEFI_SHELL_IMAGE" -no-emul-boot \
6afa0e
    -o "$ISO_IMAGE" "$UEFI_SHELL_IMAGE"
6afa0e
}
6afa0e
2fb807
0c0d31
%if %{build_ovmf}
2fb807
# Build with neither SB nor SMM; include UEFI shell.
2fb807
build ${OVMF_FLAGS} -a X64 \
2fb807
  -p OvmfPkg/OvmfPkgX64.dsc
Gerd Hoffmann b0c3af
2fb807
# Build with SB and SMM; exclude UEFI shell.
2fb807
build ${OVMF_SB_FLAGS} -a IA32 -a X64 \
2fb807
  -p OvmfPkg/OvmfPkgIa32X64.dsc
Gerd Hoffmann b0c3af
2fb807
# Sanity check: the varstore templates must be identical.
2fb807
cmp Build/OvmfX64/DEBUG_%{TOOLCHAIN}/FV/OVMF_VARS.fd \
2fb807
  Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/FV/OVMF_VARS.fd
2fb807
2fb807
# Prepare an ISO image that boots the UEFI shell.
2fb807
build_iso Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/X64
Patrick Uiterwijk 079220
7bc840
# Enroll the default certificates in a separate variable store template.
7bc840
%{__python3} ovmf-vars-generator --verbose --verbose \
2fb807
  --qemu-binary        %{qemu_binary} \
2fb807
  --ovmf-binary        Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/FV/OVMF_CODE.fd \
2fb807
  --ovmf-template-vars Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/FV/OVMF_VARS.fd \
2fb807
  --uefi-shell-iso     Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/X64/UefiShell.iso \
2fb807
  --oem-string         "$(< PkKek1.oemstr)" \
2fb807
  --skip-testing \
2fb807
  Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/FV/OVMF_VARS.secboot.fd
2fb807
0c0d31
# endif build_ovmf
Paolo Bonzini 568a37
%endif
Gerd Hoffmann b0c3af
0c0d31
%if %{build_aarch64}
2fb807
# Build with a verbose debug mask first, and stash the binary.
2fb807
build ${CC_FLAGS} -a AARCH64 \
2fb807
  -p ArmVirtPkg/ArmVirtQemu.dsc \
2fb807
  -D DEBUG_PRINT_ERROR_LEVEL=0x8040004F
2fb807
cp -a Build/ArmVirtQemu-AARCH64/DEBUG_%{TOOLCHAIN}/FV/QEMU_EFI.fd \
2fb807
  Build/ArmVirtQemu-AARCH64/DEBUG_%{TOOLCHAIN}/FV/QEMU_EFI.verbose.fd
2fb807
2fb807
# Rebuild with a silent (errors only) debug mask.
2fb807
build ${CC_FLAGS} -a AARCH64 \
2fb807
  -p ArmVirtPkg/ArmVirtQemu.dsc \
2fb807
  -D DEBUG_PRINT_ERROR_LEVEL=0x80000000
0c0d31
# endif build_aarch64
0c0d31
%endif
ad70d1
0c0d31
0c0d31
%if %{defined fedora}
Gerd Hoffmann ee5593
# build microvm
Gerd Hoffmann ee5593
build ${OVMF_FLAGS} -a X64 -p OvmfPkg/Microvm/MicrovmX64.dsc
Gerd Hoffmann ee5593
ad70d1
# build ovmf-ia32
ad70d1
mkdir -p ovmf-ia32
ad70d1
build ${OVMF_FLAGS} -a IA32 -p OvmfPkg/OvmfPkgIa32.dsc
429a27
cp Build/OvmfIa32/*/FV/OVMF_CODE*.fd ovmf-ia32/
429a27
# cp VARS files from from ovmf/, which are all we need
2fb807
cp -a Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/FV/OVMF_VARS*.fd ovmf-ia32
ad70d1
rm -rf Build/OvmfIa32
ad70d1
ad70d1
# build ovmf-ia32 with secure boot
ad70d1
build ${OVMF_SB_FLAGS} -a IA32 -p OvmfPkg/OvmfPkgIa32.dsc
ad70d1
cp Build/OvmfIa32/*/FV/OVMF_CODE.fd ovmf-ia32/OVMF_CODE.secboot.fd
ad70d1
ad70d1
# build ovmf-ia32 shell iso with EnrollDefaultKeys
6afa0e
build_iso Build/OvmfIa32/DEBUG_%{TOOLCHAIN}/IA32
2fb807
mv Build/OvmfIa32/DEBUG_%{TOOLCHAIN}/IA32/UefiShell.iso ovmf-ia32
2fb807
cp -a Build/OvmfIa32/DEBUG_%{TOOLCHAIN}/IA32/Shell.efi ovmf-ia32
2fb807
cp -a Build/OvmfIa32/DEBUG_%{TOOLCHAIN}/IA32/EnrollDefaultKeys.efi ovmf-ia32
1db20e
ad70d1
Peter Robinson 5237d7
# build ARMv7 firmware
Gerd Hoffmann d31a56
mkdir -p arm
2fb807
build ${CC_FLAGS} -a ARM -p ArmVirtPkg/ArmVirtQemu.dsc
Gerd Hoffmann d31a56
cp Build/ArmVirtQemu-ARM/DEBUG_*/FV/*.fd arm
Gerd Hoffmann d31a56
dd of="arm/QEMU_EFI-pflash.raw" if="/dev/zero" bs=1M count=64
Gerd Hoffmann d31a56
dd of="arm/QEMU_EFI-pflash.raw" if="arm/QEMU_EFI.fd" conv=notrunc
Gerd Hoffmann d31a56
dd of="arm/vars-template-pflash.raw" if="/dev/zero" bs=1M count=64
7bc840
0c0d31
# endif defined fedora
7bc840
%endif
740797
Patrick Uiterwijk 079220
0c0d31
Paolo Bonzini 9f191d
%install
2fb807
0c0d31
cp -a OvmfPkg/License.txt License.OvmfPkg.txt
0c0d31
cp -a CryptoPkg/Library/OpensslLib/openssl/LICENSE LICENSE.openssl
2fb807
mkdir -p %{buildroot}%{_datadir}/qemu/firmware
0c0d31
2fb807
# install the tools
Gerd Hoffmann b0c3af
mkdir -p %{buildroot}%{_bindir} \
Gerd Hoffmann b0c3af
         %{buildroot}%{_datadir}/%{name}/Conf \
Gerd Hoffmann b0c3af
         %{buildroot}%{_datadir}/%{name}/Scripts
Gerd Hoffmann b0c3af
install BaseTools/Source/C/bin/* \
49ef31
        %{buildroot}%{_bindir}
Gerd Hoffmann b0c3af
install BaseTools/BinWrappers/PosixLike/LzmaF86Compress \
Gerd Hoffmann b0c3af
        %{buildroot}%{_bindir}
Gerd Hoffmann b0c3af
install BaseTools/BuildEnv \
Paolo Bonzini 0655ef
        %{buildroot}%{_datadir}/%{name}
Gerd Hoffmann b0c3af
install BaseTools/Conf/*.template \
Paolo Bonzini d282ae
        %{buildroot}%{_datadir}/%{name}/Conf
Gerd Hoffmann b0c3af
install BaseTools/Scripts/GccBase.lds \
Paolo Bonzini d282ae
        %{buildroot}%{_datadir}/%{name}/Scripts
Paolo Bonzini d282ae
Paolo Bonzini 9f191d
0c0d31
%if %{build_ovmf}
2fb807
mkdir -p \
2fb807
  %{buildroot}%{_datadir}/OVMF \
2fb807
  %{buildroot}%{_datadir}/%{name}/ovmf
2fb807
2fb807
install -m 0644 Build/OvmfX64/DEBUG_%{TOOLCHAIN}/FV/OVMF_CODE.fd \
2fb807
  %{buildroot}%{_datadir}/%{name}/ovmf/OVMF_CODE.fd
2fb807
install -m 0644 Build/OvmfX64/DEBUG_%{TOOLCHAIN}/FV/OVMF_CODE.fd \
2fb807
  %{buildroot}%{_datadir}/%{name}/ovmf/OVMF_CODE.cc.fd
2fb807
install -m 0644 Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/FV/OVMF_CODE.fd \
2fb807
  %{buildroot}%{_datadir}/%{name}/ovmf/OVMF_CODE.secboot.fd
2fb807
2fb807
install -m 0644 Build/OvmfX64/DEBUG_%{TOOLCHAIN}/FV/OVMF_VARS.fd \
2fb807
  %{buildroot}%{_datadir}/%{name}/ovmf/OVMF_VARS.fd
2fb807
install -m 0644 Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/FV/OVMF_VARS.secboot.fd \
2fb807
  %{buildroot}%{_datadir}/%{name}/ovmf/OVMF_VARS.secboot.fd
2fb807
install -m 0644 Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/X64/UefiShell.iso \
2fb807
  %{buildroot}%{_datadir}/%{name}/ovmf/UefiShell.iso
2fb807
2fb807
ln -s ../%{name}/ovmf/OVMF_CODE.fd         %{buildroot}%{_datadir}/OVMF
2fb807
ln -s ../%{name}/ovmf/OVMF_CODE.secboot.fd %{buildroot}%{_datadir}/OVMF/
2fb807
ln -s ../%{name}/ovmf/OVMF_VARS.fd         %{buildroot}%{_datadir}/OVMF/
2fb807
ln -s ../%{name}/ovmf/OVMF_VARS.secboot.fd %{buildroot}%{_datadir}/OVMF/
2fb807
ln -s ../%{name}/ovmf/UefiShell.iso        %{buildroot}%{_datadir}/OVMF/
2fb807
2fb807
install -m 0644 Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/X64/Shell.efi \
2fb807
  %{buildroot}%{_datadir}/%{name}/ovmf/Shell.efi
2fb807
install -m 0644 Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/X64/EnrollDefaultKeys.efi \
2fb807
  %{buildroot}%{_datadir}/%{name}/ovmf/EnrollDefaultKeys.efi
2fb807
2fb807
install -m 0644 edk2-ovmf-sb.json \
2fb807
  %{buildroot}%{_datadir}/qemu/firmware/40-edk2-ovmf-sb.json
2fb807
install -m 0644 edk2-ovmf.json \
2fb807
  %{buildroot}%{_datadir}/qemu/firmware/50-edk2-ovmf.json
2fb807
install -m 0644 edk2-ovmf-cc.json \
2fb807
  %{buildroot}%{_datadir}/qemu/firmware/50-edk2-ovmf-cc.json
0c0d31
# endif build_ovmf
Paolo Bonzini 568a37
%endif
167ead
0c0d31
%if %{build_aarch64}
2fb807
mkdir -p \
2fb807
  %{buildroot}%{_datadir}/AAVMF \
2fb807
  %{buildroot}%{_datadir}/%{name}/aarch64
2fb807
2fb807
# Pad and install the verbose binary.
2fb807
cat Build/ArmVirtQemu-AARCH64/DEBUG_%{TOOLCHAIN}/FV/QEMU_EFI.verbose.fd \
2fb807
  /dev/zero \
2fb807
| head -c 64m \
2fb807
  > %{buildroot}%{_datadir}/%{name}/aarch64/QEMU_EFI-pflash.raw
2fb807
2fb807
# Pad and install the silent (default) binary.
2fb807
cat Build/ArmVirtQemu-AARCH64/DEBUG_%{TOOLCHAIN}/FV/QEMU_EFI.fd \
2fb807
  /dev/zero \
2fb807
| head -c 64m \
2fb807
  > %{buildroot}%{_datadir}/%{name}/aarch64/QEMU_EFI-silent-pflash.raw
2fb807
2fb807
# Create varstore template.
2fb807
cat Build/ArmVirtQemu-AARCH64/DEBUG_%{TOOLCHAIN}/FV/QEMU_VARS.fd \
2fb807
  /dev/zero \
2fb807
| head -c 64m \
2fb807
  > %{buildroot}%{_datadir}/%{name}/aarch64/vars-template-pflash.raw
2fb807
2fb807
ln -s ../%{name}/aarch64/QEMU_EFI-pflash.raw \
2fb807
  %{buildroot}%{_datadir}/AAVMF/AAVMF_CODE.verbose.fd
2fb807
ln -s ../%{name}/aarch64/QEMU_EFI-silent-pflash.raw \
2fb807
  %{buildroot}%{_datadir}/AAVMF/AAVMF_CODE.fd
2fb807
ln -s ../%{name}/aarch64/vars-template-pflash.raw \
2fb807
  %{buildroot}%{_datadir}/AAVMF/AAVMF_VARS.fd
2fb807
2fb807
chmod 0644 -- %{buildroot}%{_datadir}/AAVMF/AAVMF_*.fd
2fb807
2fb807
install -m 0644 Build/ArmVirtQemu-AARCH64/DEBUG_%{TOOLCHAIN}/FV/QEMU_EFI.verbose.fd \
2fb807
  %{buildroot}%{_datadir}/%{name}/aarch64/QEMU_EFI.fd
2fb807
install -m 0644 Build/ArmVirtQemu-AARCH64/DEBUG_%{TOOLCHAIN}/FV/QEMU_EFI.fd \
2fb807
  %{buildroot}%{_datadir}/%{name}/aarch64/QEMU_EFI.silent.fd
2fb807
install -m 0644 Build/ArmVirtQemu-AARCH64/DEBUG_%{TOOLCHAIN}/FV/QEMU_VARS.fd \
2fb807
  %{buildroot}%{_datadir}/%{name}/aarch64/QEMU_VARS.fd
2fb807
2fb807
install -m 0644 edk2-aarch64.json \
2fb807
  %{buildroot}%{_datadir}/qemu/firmware/60-edk2-aarch64.json
2fb807
install -m 0644 edk2-aarch64-verbose.json \
2fb807
  %{buildroot}%{_datadir}/qemu/firmware/70-edk2-aarch64-verbose.json
0c0d31
# endif build_aarch64
Paolo Bonzini 568a37
%endif
167ead
167ead
0c0d31
%if %{defined fedora}
Gerd Hoffmann ee5593
# install microvm
Gerd Hoffmann ee5593
install -m 0644 Build/MicrovmX64/DEBUG_%{TOOLCHAIN}/FV/MICROVM.fd \
Gerd Hoffmann ee5593
  %{buildroot}%{_datadir}/%{name}/ovmf/MICROVM.fd
Gerd Hoffmann ee5593
install -p -m 0644 %{_sourcedir}/edk2-microvm.json \
Gerd Hoffmann ee5593
  %{buildroot}%{_datadir}/qemu/firmware/60-edk2-ovmf-microvm.json
Gerd Hoffmann ee5593
e12f5e
# Install extra x86_64 json files
39f1a6
install -p -m 0644 %{_sourcedir}/edk2-ovmf-nosb.json \
e12f5e
  %{buildroot}%{_datadir}/qemu/firmware/60-edk2-ovmf-nosb.json
e12f5e
e12f5e
0c0d31
# install ia32
0c0d31
cp -a ovmf-ia32 %{buildroot}%{_datadir}/%{name}
Kashyap Chamarthy 674b3c
0c0d31
for f in %{_sourcedir}/*edk2-ovmf-ia32*.json; do
167ead
    install -pm 644 $f %{buildroot}/%{_datadir}/qemu/firmware
167ead
done
167ead
167ead
0c0d31
# install arm32
0c0d31
cp -a arm %{buildroot}%{_datadir}/%{name}
0c0d31
ln -sf ../%{name}/arm/QEMU_EFI-pflash.raw          %{buildroot}%{_datadir}/AAVMF/AAVMF32_CODE.fd
167ead
2fb807
for f in %{_sourcedir}/*edk2-arm-*.json; do
167ead
    install -pm 644 $f %{buildroot}/%{_datadir}/qemu/firmware
167ead
done
0c0d31
0c0d31
0c0d31
# edk2-tools-python install
0c0d31
cp -R BaseTools/Source/Python %{buildroot}%{_datadir}/%{name}/Python
0c0d31
for i in build BPDG Ecc GenDepex GenFds GenPatchPcdTable PatchPcdValue TargetTool Trim UPT; do
0c0d31
echo '#!/bin/sh
0c0d31
export PYTHONPATH=%{_datadir}/%{name}/Python
0c0d31
exec python3 '%{_datadir}/%{name}/Python/$i/$i.py' "$@"' > %{buildroot}%{_bindir}/$i
0c0d31
  chmod +x %{buildroot}%{_bindir}/$i
0c0d31
done
1db20e
a6540d
%if 0%{?py_byte_compile:1}
a6540d
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Python_Appendix/#manual-bytecompilation
a6540d
%py_byte_compile %{python3} %{buildroot}%{_datadir}/edk2/Python
a6540d
%endif
a6540d
0c0d31
# edk2-qosb install
7bc840
install -p ovmf-vars-generator %{buildroot}%{_bindir}
Patrick Uiterwijk 079220
0c0d31
# endif defined fedora
0c0d31
%endif
0c0d31
0c0d31
0c0d31
0c0d31
%check
2fb807
0c0d31
%if %{qosb_testing}
0c0d31
# Of the installed host kernels, boot the one with the highest Version-Release
0c0d31
# under OVMF, and check if it prints "Secure boot enabled".
0c0d31
KERNEL_PKG=$(rpm -q kernel-core | rpmdev-sort | tail -n 1)
0c0d31
KERNEL_IMG=$(rpm -q -l $KERNEL_PKG | egrep '^/lib/modules/[^/]+/vmlinuz$')
0c0d31
0c0d31
%{__python3} ovmf-vars-generator --verbose --verbose \
0c0d31
  --qemu-binary        %{qemu_binary} \
2fb807
  --ovmf-binary        Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/FV/OVMF_CODE.fd \
2fb807
  --ovmf-template-vars Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/FV/OVMF_VARS.fd \
2fb807
  --uefi-shell-iso     Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/X64/UefiShell.iso \
0c0d31
  --kernel-path        $KERNEL_IMG \
0c0d31
  --skip-enrollment \
0c0d31
  --no-download \
2fb807
  Build/Ovmf3264/DEBUG_%{TOOLCHAIN}/FV/OVMF_VARS.secboot.fd
0c0d31
0c0d31
# endif qosb_testing
0c0d31
%endif
0c0d31
0c0d31
0c0d31
%global common_files \
0c0d31
  %%license License.txt License.OvmfPkg.txt License-History.txt LICENSE.openssl \
0c0d31
  %%dir %%{_datadir}/%%{name}/ \
0c0d31
  %%dir %%{_datadir}/qemu \
0c0d31
  %%dir %%{_datadir}/qemu/firmware
0c0d31
0c0d31
%if %{build_ovmf}
0c0d31
%files ovmf
0c0d31
%common_files
0c0d31
%doc OvmfPkg/README
0c0d31
%doc ovmf-whitepaper-c770f8c.txt
0c0d31
%dir %{_datadir}/OVMF/
0c0d31
%dir %{_datadir}/%{name}/ovmf/
0c0d31
%{_datadir}/%{name}/ovmf/OVMF_CODE.fd
2fb807
%{_datadir}/%{name}/ovmf/OVMF_CODE.cc.fd
0c0d31
%{_datadir}/%{name}/ovmf/OVMF_CODE.secboot.fd
0c0d31
%{_datadir}/%{name}/ovmf/OVMF_VARS.fd
0c0d31
%{_datadir}/%{name}/ovmf/OVMF_VARS.secboot.fd
0c0d31
%{_datadir}/%{name}/ovmf/UefiShell.iso
0c0d31
%{_datadir}/OVMF/OVMF_CODE.fd
0c0d31
%{_datadir}/OVMF/OVMF_CODE.secboot.fd
0c0d31
%{_datadir}/OVMF/OVMF_VARS.fd
0c0d31
%{_datadir}/OVMF/OVMF_VARS.secboot.fd
0c0d31
%{_datadir}/OVMF/UefiShell.iso
0c0d31
%{_datadir}/%{name}/ovmf/Shell.efi
0c0d31
%{_datadir}/%{name}/ovmf/EnrollDefaultKeys.efi
2fb807
%{_datadir}/qemu/firmware/40-edk2-ovmf-sb.json
2fb807
%{_datadir}/qemu/firmware/50-edk2-ovmf-cc.json
2fb807
%{_datadir}/qemu/firmware/50-edk2-ovmf.json
e12f5e
%if %{defined fedora}
Gerd Hoffmann ee5593
%{_datadir}/%{name}/ovmf/MICROVM.fd
e12f5e
%{_datadir}/qemu/firmware/60-edk2-ovmf-nosb.json
Gerd Hoffmann ee5593
%{_datadir}/qemu/firmware/60-edk2-ovmf-microvm.json
e12f5e
%endif
0c0d31
# endif build_ovmf
0c0d31
%endif
0c0d31
0c0d31
%if %{build_aarch64}
0c0d31
%files aarch64
0c0d31
%common_files
0c0d31
%dir %{_datadir}/AAVMF/
0c0d31
%dir %{_datadir}/%{name}/aarch64/
0c0d31
%{_datadir}/%{name}/aarch64/QEMU_EFI-pflash.raw
2fb807
%{_datadir}/%{name}/aarch64/QEMU_EFI-silent-pflash.raw
0c0d31
%{_datadir}/%{name}/aarch64/vars-template-pflash.raw
2fb807
%{_datadir}/AAVMF/AAVMF_CODE.verbose.fd
0c0d31
%{_datadir}/AAVMF/AAVMF_CODE.fd
0c0d31
%{_datadir}/AAVMF/AAVMF_VARS.fd
0c0d31
%{_datadir}/%{name}/aarch64/QEMU_EFI.fd
2fb807
%{_datadir}/%{name}/aarch64/QEMU_EFI.silent.fd
0c0d31
%{_datadir}/%{name}/aarch64/QEMU_VARS.fd
2fb807
%{_datadir}/qemu/firmware/60-edk2-aarch64.json
0c0d31
%{_datadir}/qemu/firmware/70-edk2-aarch64-verbose.json
0c0d31
# endif build_aarch64
0c0d31
%endif
Gerd Hoffmann b0c3af
Paolo Bonzini 9f191d
%files tools
Paolo Bonzini 348500
%license License.txt
0c0d31
%license License-History.txt
Paolo Bonzini 7ae6f1
%{_bindir}/DevicePath
Paolo Bonzini 9f191d
%{_bindir}/EfiRom
Paolo Bonzini 9f191d
%{_bindir}/GenCrc32
Paolo Bonzini 9f191d
%{_bindir}/GenFfs
Paolo Bonzini 9f191d
%{_bindir}/GenFv
Paolo Bonzini 9f191d
%{_bindir}/GenFw
Paolo Bonzini 9f191d
%{_bindir}/GenSec
Paolo Bonzini 9f191d
%{_bindir}/LzmaCompress
Paolo Bonzini d282ae
%{_bindir}/LzmaF86Compress
Paolo Bonzini d282ae
%{_bindir}/TianoCompress
Paolo Bonzini 9f191d
%{_bindir}/VfrCompile
Paolo Bonzini 9f191d
%{_bindir}/VolInfo
Gerd Hoffmann b0c3af
%dir %{_datadir}/%{name}
Paolo Bonzini 0655ef
%{_datadir}/%{name}/BuildEnv
Gerd Hoffmann b0c3af
%{_datadir}/%{name}/Conf
Gerd Hoffmann b0c3af
%{_datadir}/%{name}/Scripts
Paolo Bonzini 9f191d
0c0d31
%files tools-doc
0c0d31
%doc BaseTools/UserManuals/*.rtf
0c0d31
0c0d31
0c0d31
%if %{defined fedora}
0c0d31
%files ovmf-ia32
0c0d31
%common_files
0c0d31
%dir %{_datadir}/%{name}/ovmf-ia32
0c0d31
%{_datadir}/%{name}/ovmf-ia32
0c0d31
%{_datadir}/%{name}/ovmf-ia32/EnrollDefaultKeys.efi
0c0d31
%{_datadir}/%{name}/ovmf-ia32/OVMF_CODE.fd
0c0d31
%{_datadir}/%{name}/ovmf-ia32/OVMF_CODE.secboot.fd
0c0d31
%{_datadir}/%{name}/ovmf-ia32/OVMF_VARS.fd
0c0d31
%{_datadir}/%{name}/ovmf-ia32/OVMF_VARS.secboot.fd
0c0d31
%{_datadir}/%{name}/ovmf-ia32/Shell.efi
0c0d31
%{_datadir}/%{name}/ovmf-ia32/UefiShell.iso
0c0d31
%{_datadir}/qemu/firmware/40-edk2-ovmf-ia32-sb-enrolled.json
0c0d31
%{_datadir}/qemu/firmware/50-edk2-ovmf-ia32-sb.json
0c0d31
%{_datadir}/qemu/firmware/60-edk2-ovmf-ia32.json
0c0d31
0c0d31
0c0d31
%files arm
0c0d31
%common_files
0c0d31
%dir %{_datadir}/%{name}/arm
0c0d31
%{_datadir}/AAVMF/AAVMF32_CODE.fd
0c0d31
%{_datadir}/%{name}/arm
0c0d31
%{_datadir}/%{name}/arm/QEMU_EFI-pflash.raw
0c0d31
%{_datadir}/%{name}/arm/QEMU_EFI.fd
0c0d31
%{_datadir}/%{name}/arm/QEMU_VARS.fd
0c0d31
%{_datadir}/%{name}/arm/vars-template-pflash.raw
0c0d31
%{_datadir}/qemu/firmware/70-edk2-arm-verbose.json
0c0d31
0c0d31
Paolo Bonzini 9f191d
%files tools-python
Paolo Bonzini d282ae
%{_bindir}/build
Paolo Bonzini 9f191d
%{_bindir}/BPDG
Paolo Bonzini d282ae
%{_bindir}/Ecc
Paolo Bonzini 9f191d
%{_bindir}/GenDepex
Paolo Bonzini 9f191d
%{_bindir}/GenFds
Paolo Bonzini 9f191d
%{_bindir}/GenPatchPcdTable
Paolo Bonzini 9f191d
%{_bindir}/PatchPcdValue
Paolo Bonzini 9f191d
%{_bindir}/TargetTool
Paolo Bonzini 9f191d
%{_bindir}/Trim
Paolo Bonzini 9f191d
%{_bindir}/UPT
Gerd Hoffmann b0c3af
%dir %{_datadir}/%{name}
Gerd Hoffmann b0c3af
%{_datadir}/%{name}/Python
Paolo Bonzini 9f191d
Gerd Hoffmann b0c3af
Patrick Uiterwijk 079220
%files qosb
Patrick Uiterwijk 079220
%license LICENSE.qosb
Patrick Uiterwijk 079220
%{_bindir}/ovmf-vars-generator
Patrick Uiterwijk 079220
0c0d31
# endif fedora
Paolo Bonzini 568a37
%endif
Gerd Hoffmann d31a56
Paolo Bonzini 9f191d
Paolo Bonzini 9f191d
%changelog
Fedora Release Engineering 6d1cf6
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 20211126gitbb1bba3d7767-2
Fedora Release Engineering 6d1cf6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Fedora Release Engineering 6d1cf6
Gerd Hoffmann 5eb552
* Mon Dec 6 2021 Gerd Hoffmann <kraxel@redhat.com> - 20211126gitbb1bba3d7767-1
Gerd Hoffmann 5eb552
- Update to edk2-stable202111
Gerd Hoffmann 5eb552
- Resolves rhbz#1978966
Gerd Hoffmann 5eb552
- Resolves rhbz#2026744
Gerd Hoffmann 5eb552
Daniel P. Berrangé 114167
* Mon Dec  6 2021 Daniel P. Berrangé <berrange@redhat.com> - 20210527gite1999b264f1f-5
Daniel P. Berrangé 114167
- Drop glibc strcmp workaround
Daniel P. Berrangé 114167
Daniel P. Berrangé e6c2de
* Mon Nov 29 2021 Daniel P. Berrangé <berrange@redhat.com> - 20210527gite1999b264f1f-4
Daniel P. Berrangé e6c2de
- Drop customized splash screen boot logo
Daniel P. Berrangé e46e2f
- Temporary workaround for suspected glibc strcmp bug breaking builds in koji
Daniel P. Berrangé e6c2de
Daniel P. Berrangé b20b83
* Wed Sep  1 2021 Daniel P. Berrangé <berrange@redhat.com> - 20210527gite1999b264f1f-3
Daniel P. Berrangé b20b83
- Fix qemu packaging conditionals for ELN builds
Daniel P. Berrangé b20b83
Fedora Release Engineering d18839
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 20210527gite1999b264f1f-2
Fedora Release Engineering d18839
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Fedora Release Engineering d18839
ea915e
* Tue Jul 20 2021 Cole Robinson <crobinso@redhat.com> - 20210527gite1999b264f1f-1
ea915e
- Update to git snapshot
ea915e
- Sync with c9s packaging
ea915e
Jiri Kucera 50204b
* Mon Jun 14 2021 Jiri Kucera <jkucera@redhat.com> - 20200801stable-5
Jiri Kucera 50204b
- Replace genisoimage with xorriso
Jiri Kucera 50204b
Fedora Release Engineering e8ccc2
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 20200801stable-4
Fedora Release Engineering e8ccc2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Fedora Release Engineering e8ccc2
032154
* Thu Dec 03 2020 Cole Robinson <aintdiscole@gmail.com> - 20200801stable-3
032154
- Really fix TPM breakage (bz 1897367)
032154
ce2011
* Tue Nov 24 2020 Cole Robinson <aintdiscole@gmail.com> - 20200801stable-2
ce2011
- Fix openssl usage, unbreak TPM (bz 1897367)
ce2011
fdb3e7
* Wed Sep 16 2020 Cole Robinson <crobinso@redhat.com> - 20200801stable-1
fdb3e7
- Update to edk2 stable 202008
fdb3e7
Peter Robinson 5237d7
* Sat Sep 12 2020 Peter Robinson <pbrobinson@fedoraproject.org> - 20200201stable-6
Peter Robinson 5237d7
- Tweaks for aarch64/ARMv7 builds
Peter Robinson 5237d7
- Minor cleanups
Peter Robinson 5237d7
a6540d
* Tue Aug 04 2020 Cole Robinson <aintdiscole@gmail.com> - 20200201stable-5
a6540d
- Fix build failures on rawhide
a6540d
Fedora Release Engineering cf3e37
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20200201stable-4
Fedora Release Engineering cf3e37
- Second attempt - Rebuilt for
Fedora Release Engineering cf3e37
  https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Fedora Release Engineering cf3e37
Fedora Release Engineering 78cb77
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20200201stable-3
Fedora Release Engineering 78cb77
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Fedora Release Engineering 78cb77
Tom Stellard 67c92c
* Mon Jul 13 2020 Tom Stellard <tstellar@redhat.com> - 20200201stable-2
Tom Stellard 67c92c
- Use make macros
Tom Stellard 67c92c
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
Tom Stellard 67c92c
0a0d66
* Mon Apr 13 2020 Cole Robinson <aintdiscole@gmail.com> - 20200201stable-1
0a0d66
- Update to stable-202002
0a0d66
Fedora Release Engineering bccf75
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20190501stable-5
Fedora Release Engineering bccf75
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Fedora Release Engineering bccf75
966ede
* Fri Sep 06 2019 Patrick Uiterwijk <puiterwijk@redhat.com> - 20190501stable-4
966ede
- Updated HTTP_BOOT option to new upstream value
966ede
Fedora Release Engineering 14344b
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 20190501stable-3
Fedora Release Engineering 14344b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Fedora Release Engineering 14344b
b9bff0
* Mon Jul 15 2019 Cole Robinson <aintdiscole@gmail.com> - 20190501stable-2
b9bff0
- License is now BSD-2-Clause-Patent
b9bff0
- Re-enable secureboot enrollment
b9bff0
- Use qemu-ovmf-secureboot from git
b9bff0
740797
* Thu Jul 11 2019 Cole Robinson <crobinso@redhat.com> - 20190501stable-1
740797
- Update to stable-201905
740797
- Update to openssl-1.1.1b
1b8f62
- Ship VARS file for ovmf-ia32 (bug 1688596)
Kashyap Chamarthy 674b3c
- Ship Fedora-variant JSON "firmware descriptor files"
Kashyap Chamarthy 674b3c
- Resolves rhbz#1728652
740797
e9ffba
* Mon Mar 18 2019 Cole Robinson <aintdiscole@gmail.com> - 20190308stable-1
e9ffba
- Use YYYYMMDD versioning to fix upgrade path
e9ffba
e9ffba
* Fri Mar 15 2019 Cole Robinson <aintdiscole@gmail.com> - 201903stable-1
b846ca
- Update to stable-201903
b846ca
- Update to openssl-1.1.0j
b846ca
- Move to python3 deps
b846ca
Fedora Release Engineering bffed9
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 20180815gitcb5f4f45ce-6
Fedora Release Engineering bffed9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Fedora Release Engineering bffed9
a2a539
* Wed Nov 14 2018 Patrick Uiterwijk <puiterwijk@redhat.com> - 20180815gitcb5f4f45ce-5
a2a539
- Add -qosb dependency on python3
a2a539
Paolo Bonzini ec71ad
* Fri Nov 9 2018 Paolo Bonzini <pbonzini@redhat.com> - 20180815gitcb5f4f45ce-4
Paolo Bonzini ec71ad
- Fix network boot via grub (bz 1648476)
Paolo Bonzini ec71ad
Paolo Bonzini 3aa095
* Wed Sep 12 2018 Paolo Bonzini <pbonzini@redhat.com> - 20180815gitcb5f4f45ce-3
Paolo Bonzini 3aa095
- Explicitly compile the scripts using py_byte_compile
Paolo Bonzini 3aa095
285b94
* Fri Aug 31 2018 Cole Robinson <crobinso@redhat.com> - 20180815gitcb5f4f45ce-2
285b94
- Fix passing through RPM build flags (bz 1540244)
285b94
9fc821
* Tue Aug 21 2018 Cole Robinson <crobinso@redhat.com> - 20180815gitcb5f4f45ce-1
9fc821
- Update to edk2 git cb5f4f45ce, edk2-stable201808
3c6531
- Update to qemu-ovmf-secureboot-1.1.3
3c6531
- Enable TPM2 support
9fc821
Paolo Bonzini 83f3ca
* Mon Jul 23 2018 Paolo Bonzini <pbonzini@redhat.com> - 20180529gitee3198e672e2-5
Paolo Bonzini 83f3ca
- Fixes for AMD SEV on OVMF_CODE.fd
Paolo Bonzini 83f3ca
- Add Provides for bundled OpenSSL
Paolo Bonzini 83f3ca
Paolo Bonzini 720bc3
* Wed Jul 18 2018 Paolo Bonzini <pbonzini@redhat.com> - 20180529gitee3198e672e2-4
Paolo Bonzini 720bc3
- Enable IPv6
Paolo Bonzini 720bc3
Fedora Release Engineering 20639a
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 20180529gitee3198e672e2-3
Fedora Release Engineering 20639a
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Fedora Release Engineering 20639a
Paolo Bonzini 9fbea3
* Wed Jun 20 2018 Paolo Bonzini <pbonzini@redhat.com> - 20180529gitee3198e672e2-2
Paolo Bonzini 9fbea3
- Backport two bug fixes from RHEL: connect again virtio-rng devices, and
Paolo Bonzini 9fbea3
  connect consoles unconditionally in OVMF (ARM firmware already did it)
Paolo Bonzini 9fbea3
Paolo Bonzini 7ae6f1
* Tue May 29 2018 Paolo Bonzini <pbonzini@redhat.com> - 20180529gitee3198e672e2-1
Paolo Bonzini 9fbea3
- Rebase to ee3198e672e2
Paolo Bonzini 7ae6f1
b7103c
* Tue May 01 2018 Cole Robinson <crobinso@redhat.com> - 20171011git92d07e4-7
b7103c
- Bump release for new build
b7103c
Patrick Uiterwijk 079220
* Fri Mar 30 2018 Patrick Uiterwijk <puiterwijk@redhat.com> - 20171011git92d07e4-6
Patrick Uiterwijk 079220
- Add qemu-ovmf-secureboot (qosb)
Patrick Uiterwijk 079220
- Generate pre-enrolled Secure Boot OVMF VARS files
Patrick Uiterwijk 079220
Paolo Bonzini 6ea72c
* Wed Mar 07 2018 Paolo Bonzini <pbonzini@redhat.com> - 20171011git92d07e4-5
Paolo Bonzini 6ea72c
- Fix GCC 8 compilation
Paolo Bonzini 6ea72c
- Replace dosfstools and mtools with qemu-img vvfat
Paolo Bonzini 6ea72c
Fedora Release Engineering d3e5a8
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 20171011git92d07e4-4
Fedora Release Engineering d3e5a8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Fedora Release Engineering d3e5a8
Paolo Bonzini 91c79a
* Fri Jan 19 2018 Paolo Bonzini <pbonzini@redhat.com> - 20170209git296153c5-3
Paolo Bonzini 91c79a
- Add OpenSSL patches from Fedora
Paolo Bonzini 91c79a
- Enable TLS_MODE
Paolo Bonzini 91c79a
Paolo Bonzini 2e34e0
* Fri Nov 17 2017 Paolo Bonzini <pbonzini@redhat.com> - 20170209git296153c5-2
Paolo Bonzini 2e34e0
- Backport patches 19-21 from RHEL
Paolo Bonzini 2e34e0
- Add patches 22-24 to fix SEV slowness
Paolo Bonzini 2e34e0
- Add fedora conditionals
Paolo Bonzini 2e34e0
Paolo Bonzini 2e34e0
* Tue Nov 14 2017 Paolo Bonzini <pbonzini@redhat.com> - 20171011git92d07e4-1
Paolo Bonzini 348500
- Import source and patches from RHEL version
Paolo Bonzini 348500
- Update OpenSSL to 1.1.0e
Paolo Bonzini 348500
- Refresh 0099-Tweak-the-tools_def-to-support-cross-compiling.patch
Paolo Bonzini 348500
Paolo Bonzini 568a37
* Mon Nov 13 2017 Paolo Bonzini <pbonzini@redhat.com> - 20170209git296153c5-6
Paolo Bonzini 568a37
- Allow non-cross builds
Paolo Bonzini 568a37
- Install /usr/share/OVMF and /usr/share/AAVMF
Paolo Bonzini 568a37
Fedora Release Engineering c356e9
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20170209git296153c5-5
Fedora Release Engineering c356e9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
Fedora Release Engineering c356e9
Fedora Release Engineering 3f09d5
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20170209git296153c5-4
Fedora Release Engineering 3f09d5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
Fedora Release Engineering 3f09d5
ad70d1
* Wed Mar 15 2017 Cole Robinson <crobinso@redhat.com> - 20170209git296153c5-3
ad70d1
- Ship ovmf-ia32 package (bz 1424722)
ad70d1
ed852e
* Thu Feb 16 2017 Cole Robinson <crobinso@redhat.com> - 20170209git296153c5-2
ed852e
- Update EnrollDefaultKeys patch (bz #1398743)
ed852e
Paolo Bonzini d7ad69
* Mon Feb 13 2017 Paolo Bonzini <pbonzini@redhat.com> - 20170209git296153c5-1
Paolo Bonzini d7ad69
- Rebase to git master
Paolo Bonzini d7ad69
- New patch 0010 fixes failure to build from source.
Paolo Bonzini d7ad69
Fedora Release Engineering 5b845e
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20161105git3b25ca8-2
Fedora Release Engineering 5b845e
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
Fedora Release Engineering 5b845e
b17819
* Sun Nov 06 2016 Cole Robinson <crobinso@redhat.com> - 20161105git3b25ca8-1
b17819
- Rebase to git master
b17819
Tom Callaway da615e
* Fri Sep  9 2016 Tom Callaway <spot@fedoraproject.org> - 20160418gita8c39ba-5
Tom Callaway da615e
- replace legally problematic openssl source with "hobbled" tarball
Tom Callaway da615e
Gerd Hoffmann d31a56
* Thu Jul 21 2016 Gerd Hoffmann <kraxel@redhat.com> - 20160418gita8c39ba-4
Gerd Hoffmann d31a56
- Also build for armv7.
Gerd Hoffmann d31a56
Gerd Hoffmann d31a56
* Tue Jul 19 2016 Gerd Hoffmann <kraxel@redhat.com> 20160418gita8c39ba-3
Gerd Hoffmann 18632e
- Update EnrollDefaultKeys patch.
Gerd Hoffmann 18632e
Paolo Bonzini 498015
* Fri Jul 8 2016 Paolo Bonzini <pbonzini@redhat.com> - 20160418gita8c39ba-2
Paolo Bonzini 498015
- Distribute edk2-ovmf on aarch64
Paolo Bonzini 498015
1db20e
* Sat May 21 2016 Cole Robinson <crobinso@redhat.com> - 20160418gita8c39ba-1
1db20e
- Distribute edk2-aarch64 on x86 (bz #1338027)
1db20e
Gerd Hoffmann b0c3af
* Mon Apr 18 2016 Gerd Hoffmann <kraxel@redhat.com> 20160418gita8c39ba-0
Gerd Hoffmann b0c3af
- Update to latest git.
Gerd Hoffmann b0c3af
- Add firmware builds (FatPkg is free now).
Gerd Hoffmann b0c3af
7e2328
* Mon Feb 15 2016 Cole Robinson <crobinso@redhat.com> 20151127svn18975-3
7e2328
- Fix FTBFS gcc warning (bz 1307439)
7e2328
f62d42
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 20151127svn18975-2
f62d42
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
f62d42
7e2328
* Fri Nov 27 2015 Paolo Bonzini <pbonzini@redhat.com> - 20151127svn18975-1
Paolo Bonzini ac38c1
- Rebase to 20151127svn18975-1
Paolo Bonzini ac38c1
- Linker script renamed to GccBase.lds
Paolo Bonzini ac38c1
2478ec
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20150519svn17469-2
2478ec
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
2478ec
Paolo Bonzini ac38c1
* Tue May 19 2015 Paolo Bonzini <pbonzini@redhat.com> - 20150519svn17469-1
Paolo Bonzini 98fad1
- Rebase to 20150519svn17469-1
Paolo Bonzini 98fad1
- edk2-remove-tree-check.patch now upstream
Paolo Bonzini 98fad1
Kalev Lember e9a765
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 20140724svn2670-6
Kalev Lember e9a765
- Rebuilt for GCC 5 C++11 ABI change
Kalev Lember e9a765
Peter Robinson c83d14
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20140724svn2670-5
Peter Robinson c83d14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
Peter Robinson c83d14
Paolo Bonzini d2839d
* Thu Jul 24 2014 Paolo Bonzini <pbonzini@redhat.com> - 20140724svn2670-1
Paolo Bonzini d2839d
- Rebase to 20140724svn2670-1
Paolo Bonzini d2839d
Paolo Bonzini 7fb401
* Tue Jun 24 2014 Paolo Bonzini <pbonzini@redhat.com> - 20140624svn2649-1
Paolo Bonzini 7fb401
- Use standalone .tar.xz from buildtools repo
Paolo Bonzini 7fb401
Paolo Bonzini 0655ef
* Tue Jun 24 2014 Paolo Bonzini <pbonzini@redhat.com> - 20140328svn15376-4
Paolo Bonzini 0655ef
- Install BuildTools/BaseEnv
Paolo Bonzini 0655ef
Paolo Bonzini d282ae
* Mon Jun 23 2014 Paolo Bonzini <pbonzini@redhat.com> - 20140328svn15376-3
Paolo Bonzini d282ae
- Rebase to get GCC48 configuration
Paolo Bonzini d282ae
- Package EDK_TOOLS_PATH as /usr/share/edk2
Paolo Bonzini d282ae
- Package "build" and LzmaF86Compress too, as well as the new
Paolo Bonzini d282ae
  tools Ecc and TianoCompress.
Paolo Bonzini d282ae
4d0780
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20131114svn14844-2
4d0780
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
4d0780
Paolo Bonzini f8ed42
* Thu Nov 14 2013 Paolo Bonzini <pbonzini@redhat.com> - 20131114svn14844-1
Paolo Bonzini f8ed42
- Upgrade to r14844.
Paolo Bonzini 60a9a2
- Remove upstreamed parts of patch 1.
Paolo Bonzini f8ed42
Paolo Bonzini 79e160
* Fri Nov 8 2013 Paolo Bonzini <pbonzini@redhat.com> - 20130515svn14365-7
Paolo Bonzini 79e160
- Make BaseTools compile on ARM.
Paolo Bonzini 79e160
Paolo Bonzini 517112
* Fri Aug 30 2013 Paolo Bonzini <pbonzini@redhat.com> - 20130515svn14365-6
Paolo Bonzini 517112
- Revert previous change; firmware packages should be noarch, and building
Paolo Bonzini 517112
  BaseTools twice is simply wrong.
Paolo Bonzini 517112
Kay Sievers a1a88e
* Mon Aug 19 2013 Kay Sievers <kay@redhat.com> - 20130515svn14365-5
Kay Sievers a1a88e
- Add sub-package with EFI shell
Kay Sievers a1a88e
e144da
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20130515svn14365-4
e144da
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
e144da
Dan Horák 151636
* Thu May 23 2013 Dan Horák <dan[at]danny.cz> 20130515svn14365-3
Dan Horák 151636
- set ExclusiveArch
Dan Horák 151636
Paolo Bonzini 9f191d
* Thu May 16 2013 Paolo Bonzini <pbonzini@redhat.com> 20130515svn14365-2
Paolo Bonzini 9f191d
- Fix edk2-tools-python Requires
Paolo Bonzini 9f191d
Paolo Bonzini 9f191d
* Wed May 15 2013 Paolo Bonzini <pbonzini@redhat.com> 20130515svn14365-1
Paolo Bonzini 9f191d
- Split edk2-tools-doc and edk2-tools-python
Paolo Bonzini 9f191d
- Fix Python BuildRequires
Paolo Bonzini 9f191d
- Remove FatBinPkg at package creation time.
Paolo Bonzini 9f191d
- Use fully versioned dependency.
Paolo Bonzini 9f191d
- Add comment on how to generate the sources.
Paolo Bonzini 9f191d
Paolo Bonzini 9f191d
* Thu May 2 2013 Paolo Bonzini <pbonzini@redhat.com> 20130502.g732d199-1
Paolo Bonzini 9f191d
- Create.