1 |
# This package depends on automagic byte compilation |
2 |
# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_2 |
3 |
%global _python_bytecompile_extra 1 |
4 |
|
5 |
# RPM doesn't detect that code in /usr/share is python3, this forces it |
6 |
# https://fedoraproject.org/wiki/Changes/Avoid_usr_bin_python_in_RPM_Build#Python_bytecompilation |
7 |
%global __python %{__python3} |
8 |
|
9 |
# Please keep this package in sync with FC |
10 |
|
11 |
%global edk2_date 20180815 |
12 |
%global edk2_githash cb5f4f45ce |
13 |
%global openssl_version 1.1.0j |
14 |
%global qosb_version 1.1.3 |
15 |
|
16 |
# Even though edk2 stable releases are YYYYMM, we need |
17 |
# to use YYYMMDD to avoid needing to bump package epoch |
18 |
# due to previous 'git' Version: |
19 |
%global edk2_stable_date 20190308 |
20 |
%global edk2_stable_str edk2-stable201903 |
21 |
|
22 |
%define qosb_testing 0 |
23 |
|
24 |
%ifarch x86_64 |
25 |
%define qosb_testing 1 |
26 |
%endif |
27 |
%define cross 1 |
28 |
|
29 |
%ifarch %{ix86} x86_64 |
30 |
%define build_ovmf_ia32 1 |
31 |
%endif |
32 |
%ifarch x86_64 |
33 |
%define build_ovmf_x64 1 |
34 |
%endif |
35 |
%ifarch aarch64 |
36 |
%define build_aavmf_aarch64 1 |
37 |
%endif |
38 |
%ifarch %{arm} |
39 |
%define build_aavmf_arm 1 |
40 |
%endif |
41 |
%if 0%{?cross:1} |
42 |
%define build_ovmf_x64 1 |
43 |
%define build_ovmf_ia32 1 |
44 |
%define build_aavmf_aarch64 1 |
45 |
%define build_aavmf_arm 1 |
46 |
%endif |
47 |
|
48 |
Name: edk2 |
49 |
#Version: {edk2_date}git%{edk2_githash} |
50 |
Version: %{edk2_stable_date}stable |
51 |
Release: %mkrel 1 |
52 |
Summary: EFI Development Kit II |
53 |
|
54 |
Group: Emulators |
55 |
License: BSD |
56 |
URL: http://www.tianocore.org/edk2/ |
57 |
# Tarball generated from git object update-tarball.sh script |
58 |
#Source0: edk2-{edk2_date}-{edk2_githash}.tar.xz |
59 |
Source0: https://github.com/tianocore/edk2/archive/%{edk2_stable_str}.tar.gz#/edk2-%{edk2_stable_str}.tar.gz |
60 |
Source1: openssl-%{openssl_version}-hobbled.tar.xz |
61 |
Source2: ovmf-whitepaper-c770f8c.txt |
62 |
Source3: https://github.com/puiterwijk/qemu-ovmf-secureboot/archive/v%{qosb_version}/qemu-ovmf-secureboot-%{qosb_version}.tar.gz |
63 |
Source10: hobble-openssl |
64 |
Source11: build-iso.sh |
65 |
Source12: update-tarball.sh |
66 |
Source13: openssl-patch-to-tarball.sh |
67 |
|
68 |
# non-upstream patches |
69 |
Patch0001: 0001-OvmfPkg-silence-EFI_D_VERBOSE-0x00400000-in-NvmExpre.patch |
70 |
Patch0002: 0002-OvmfPkg-silence-EFI_D_VERBOSE-0x00400000-in-the-DXE-.patch |
71 |
Patch0003: 0003-OvmfPkg-enable-DEBUG_VERBOSE.patch |
72 |
Patch0004: 0004-OvmfPkg-increase-max-debug-message-length-to-512.patch |
73 |
Patch0005: 0005-advertise-OpenSSL-on-TianoCore-splash-screen-boot-lo.patch |
74 |
Patch0006: 0006-OvmfPkg-QemuVideoDxe-enable-debug-messages-in-VbeShi.patch |
75 |
Patch0007: 0007-MdeModulePkg-TerminalDxe-add-other-text-resolutions.patch |
76 |
Patch0008: 0008-MdeModulePkg-TerminalDxe-set-xterm-resolution-on-mod.patch |
77 |
Patch0009: 0009-OvmfPkg-take-PcdResizeXterm-from-the-QEMU-command-li.patch |
78 |
Patch0010: 0010-ArmVirtPkg-QemuFwCfgLib-allow-UEFI_DRIVER-client-mod.patch |
79 |
Patch0011: 0011-ArmVirtPkg-take-PcdResizeXterm-from-the-QEMU-command.patch |
80 |
Patch0012: 0012-OvmfPkg-allow-exclusion-of-the-shell-from-the-firmwa.patch |
81 |
Patch0013: 0013-OvmfPkg-EnrollDefaultKeys-application-for-enrolling-.patch |
82 |
Patch0014: 0014-ArmPlatformPkg-introduce-fixed-PCD-for-early-hello-m.patch |
83 |
Patch0015: 0015-ArmPlatformPkg-PrePeiCore-write-early-hello-message-.patch |
84 |
Patch0016: 0016-ArmVirtPkg-set-early-hello-message-RH-only.patch |
85 |
|
86 |
%if 0%{?cross:1} |
87 |
# Tweak the tools_def to support cross-compiling. |
88 |
# These files are meant for customization, so this is not upstream too. |
89 |
Patch0099: 0099-Tweak-the-tools_def-to-support-cross-compiling.patch |
90 |
%endif |
91 |
|
92 |
%if 0%{?fedora:1} |
93 |
# |
94 |
# actual firmware builds support cross-compiling. edk2-tools |
95 |
# in theory should build everywhere without much trouble, but |
96 |
# in practice the edk2 build system barfs on archs it doesn't know |
97 |
# (such as ppc), so lets limit things to the known-good ones. |
98 |
# |
99 |
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 |
100 |
%else |
101 |
ExclusiveArch: x86_64 aarch64 |
102 |
%endif |
103 |
|
104 |
BuildRequires: gcc gcc-c++ |
105 |
BuildRequires: python3 python3-devel python |
106 |
BuildRequires: pkgconfig(uuid) |
107 |
%if 0%{?cross:1} |
108 |
BuildRequires: gcc-aarch64-linux-gnu |
109 |
BuildRequires: gcc-arm-linux-gnu |
110 |
BuildRequires: gcc-x86_64-linux-gnu |
111 |
%endif |
112 |
BuildRequires: iasl |
113 |
BuildRequires: nasm |
114 |
BuildRequires: qemu-img |
115 |
BuildRequires: genisoimage |
116 |
BuildRequires: bc |
117 |
|
118 |
# These are for QOSB |
119 |
BuildRequires: python3-requests |
120 |
BuildRequires: qemu-system-x86 |
121 |
%if %{?qosb_testing} |
122 |
# This is used for testing the enrollment: builds are run in a chroot, lacking |
123 |
# a kernel. The testing is only performed on x86_64 for now, but we can't make |
124 |
# the BuildRequires only on a specific arch, as that'd come through in the SRPM |
125 |
# NOTE: The actual enrollment needs to happen in all builds for all architectures, |
126 |
# because OVMF is built as noarch, which means that koji enforces that the build |
127 |
# results don't actually differ per arch, and then it picks a random arches' build |
128 |
# for the actual RPM. |
129 |
BuildRequires: kernel-desktop-latest |
130 |
%endif |
131 |
|
132 |
%description |
133 |
EDK II is a development code base for creating UEFI drivers, applications |
134 |
and firmware images. |
135 |
|
136 |
%package tools |
137 |
Summary: EFI Development Kit II Tools |
138 |
Group: Development/Tools |
139 |
%description tools |
140 |
This package provides tools that are needed to |
141 |
build EFI executables and ROMs using the GNU tools. |
142 |
|
143 |
%package tools-python |
144 |
Summary: EFI Development Kit II Tools |
145 |
Group: Development/Tools |
146 |
Requires: python3 |
147 |
BuildArch: noarch |
148 |
|
149 |
%description tools-python |
150 |
This package provides tools that are needed to build EFI executables |
151 |
and ROMs using the GNU tools. You do not need to install this package; |
152 |
you probably want to install edk2-tools only. |
153 |
|
154 |
%package tools-doc |
155 |
Summary: Documentation for EFI Development Kit II Tools |
156 |
Group: Development/Tools |
157 |
BuildArch: noarch |
158 |
%description tools-doc |
159 |
This package documents the tools that are needed to |
160 |
build EFI executables and ROMs using the GNU tools. |
161 |
|
162 |
%package qosb |
163 |
Summary: Tool to enroll secureboot |
164 |
Group: Development/Tools |
165 |
Requires: python3 |
166 |
Buildarch: noarch |
167 |
%description qosb |
168 |
This package contains QOSB (QEMU OVMF Secure Boot), which can enroll OVMF |
169 |
variable files to enforce Secure Boot. |
170 |
|
171 |
|
172 |
%if 0%{?build_ovmf_x64:1} |
173 |
%package ovmf |
174 |
Summary: Open Virtual Machine Firmware |
175 |
# OVMF includes the Secure Boot and IPv6 features; it has a builtin OpenSSL |
176 |
# library. |
177 |
License: BSD and OpenSSL |
178 |
Provides: bundled(openssl) |
179 |
Provides: ovmf-x64, edk2-ovmf-x64 |
180 |
Provides: edk2-ovmf-x64 |
181 |
Obsoletes: edk2-ovmf-x64 |
182 |
BuildArch: noarch |
183 |
%description ovmf |
184 |
EFI Development Kit II |
185 |
Open Virtual Machine Firmware (x64) |
186 |
%endif |
187 |
|
188 |
%if 0%{?build_ovmf_ia32:1} |
189 |
%package ovmf-ia32 |
190 |
Summary: Open Virtual Machine Firmware |
191 |
# OVMF includes the Secure Boot and IPv6 features; it has a builtin OpenSSL |
192 |
# library. |
193 |
License: BSD and OpenSSL |
194 |
Provides: bundled(openssl) |
195 |
BuildArch: noarch |
196 |
%description ovmf-ia32 |
197 |
EFI Development Kit II |
198 |
Open Virtual Machine Firmware (ia32) |
199 |
%endif |
200 |
|
201 |
%if 0%{?build_aavmf_aarch64:1} |
202 |
%package aarch64 |
203 |
Summary: AARCH64 Virtual Machine Firmware |
204 |
BuildArch: noarch |
205 |
# No Secure Boot for AAVMF yet, but we include OpenSSL for the IPv6 stack. |
206 |
License: BSD and OpenSSL |
207 |
Provides: bundled(openssl) |
208 |
%description aarch64 |
209 |
EFI Development Kit II |
210 |
AARCH64 UEFI Firmware |
211 |
%endif |
212 |
|
213 |
%if 0%{?build_aavmf_arm:1} |
214 |
%package arm |
215 |
Summary: ARM Virtual Machine Firmware |
216 |
BuildArch: noarch |
217 |
%description arm |
218 |
EFI Development Kit II |
219 |
armv7 UEFI Firmware |
220 |
|
221 |
%endif |
222 |
|
223 |
%prep |
224 |
%setup -q -n edk2-%{edk2_stable_str} |
225 |
|
226 |
# Ensure old shell and binary packages are not used |
227 |
rm -rf EdkShellBinPkg |
228 |
rm -rf EdkShellPkg |
229 |
rm -rf FatBinPkg |
230 |
rm -rf ShellBinPkg |
231 |
|
232 |
# copy whitepaper into place |
233 |
cp -a -- %{SOURCE2} . |
234 |
|
235 |
# extract openssl into place |
236 |
tar -xvf %{SOURCE1} --strip-components=1 --directory CryptoPkg/Library/OpensslLib/openssl |
237 |
|
238 |
# Extract QOSB |
239 |
tar -xvf %{SOURCE3} |
240 |
mv qemu-ovmf-secureboot-%{qosb_version}/README.md README.qosb |
241 |
mv qemu-ovmf-secureboot-%{qosb_version}/LICENSE LICENSE.qosb |
242 |
|
243 |
%autopatch -p1 |
244 |
base64 --decode < MdeModulePkg/Logo/Logo-OpenSSL.bmp.b64 > MdeModulePkg/Logo/Logo-OpenSSL.bmp |
245 |
|
246 |
%build |
247 |
source ./edksetup.sh |
248 |
|
249 |
# compiler |
250 |
CC_FLAGS="-t GCC5" |
251 |
|
252 |
# parallel builds |
253 |
JOBS="%{?_smp_mflags}" |
254 |
JOBS="${JOBS#-j}" |
255 |
if test "$JOBS" != ""; then |
256 |
CC_FLAGS="${CC_FLAGS} -n $JOBS" |
257 |
fi |
258 |
|
259 |
# common features |
260 |
CC_FLAGS="$CC_FLAGS --cmd-len=65536 -t %{TOOLCHAIN} -b DEBUG --hash" |
261 |
CC_FLAGS="$CC_FLAGS -D NETWORK_IP6_ENABLE" |
262 |
CC_FLAGS="$CC_FLAGS -D TPM2_ENABLE" |
263 |
|
264 |
# ovmf features |
265 |
OVMF_FLAGS="${CC_FLAGS}" |
266 |
OVMF_FLAGS="${OVMF_FLAGS} -D TLS_ENABLE" |
267 |
OVMF_FLAGS="${OVMF_FLAGS} -D HTTP_BOOT_ENABLE" |
268 |
OVMF_FLAGS="${OVMF_FLAGS} -D NETWORK_IP6_ENABLE" |
269 |
OVMF_FLAGS="${OVMF_FLAGS} -D FD_SIZE_2MB" |
270 |
|
271 |
# ovmf + secure boot features |
272 |
OVMF_SB_FLAGS="${OVMF_FLAGS}" |
273 |
OVMF_SB_FLAGS="${OVMF_SB_FLAGS} -D SECURE_BOOT_ENABLE" |
274 |
OVMF_SB_FLAGS="${OVMF_SB_FLAGS} -D SMM_REQUIRE" |
275 |
OVMF_SB_FLAGS="${OVMF_SB_FLAGS} -D EXCLUDE_SHELL_FROM_FD" |
276 |
|
277 |
# arm firmware features |
278 |
ARM_FLAGS="${CC_FLAGS}" |
279 |
ARM_FLAGS="${ARM_FLAGS} -D DEBUG_PRINT_ERROR_LEVEL=0x8040004F" |
280 |
|
281 |
unset MAKEFLAGS |
282 |
make -C BaseTools %{?_smp_mflags} \ |
283 |
EXTRA_OPTFLAGS="%{optflags}" \ |
284 |
EXTRA_LDFLAGS="%{ldflags}" |
285 |
sed -i -e 's/-Werror//' Conf/tools_def.txt |
286 |
|
287 |
%if 0%{?cross:1} |
288 |
export GCC5_IA32_PREFIX="x86_64-linux-gnu-" |
289 |
export GCC5_X64_PREFIX="x86_64-linux-gnu-" |
290 |
export GCC5_AARCH64_PREFIX="aarch64-linux-gnu-" |
291 |
export GCC5_ARM_PREFIX="arm-linux-gnu-" |
292 |
%endif |
293 |
|
294 |
# build ovmf (x64) |
295 |
%if 0%{?build_ovmf_x64:1} |
296 |
mkdir -p ovmf |
297 |
build ${OVMF_FLAGS} -a X64 -p OvmfPkg/OvmfPkgX64.dsc |
298 |
cp Build/OvmfX64/*/FV/OVMF_*.fd ovmf/ |
299 |
rm -rf Build/OvmfX64 |
300 |
|
301 |
# build ovmf (x64) with secure boot |
302 |
build ${OVMF_SB_FLAGS} -a IA32 -a X64 -p OvmfPkg/OvmfPkgIa32X64.dsc |
303 |
cp Build/Ovmf3264/*/FV/OVMF_CODE.fd ovmf/OVMF_CODE.secboot.fd |
304 |
|
305 |
# build ovmf (x64) shell iso with EnrollDefaultKeys |
306 |
cp Build/Ovmf3264/*/X64/Shell.efi ovmf/ |
307 |
cp Build/Ovmf3264/*/X64/EnrollDefaultKeys.efi ovmf |
308 |
sh %{_sourcedir}/build-iso.sh ovmf/ |
309 |
|
310 |
# Build enrolled VARS file |
311 |
python3 qemu-ovmf-secureboot-%{qosb_version}/ovmf-vars-generator \ |
312 |
--qemu-binary /usr/bin/qemu-system-x86_64 \ |
313 |
--skip-testing \ |
314 |
--ovmf-binary ovmf/OVMF_CODE.secboot.fd \ |
315 |
--ovmf-template-vars ovmf/OVMF_VARS.fd \ |
316 |
--uefi-shell-iso ovmf/UefiShell.iso \ |
317 |
ovmf/OVMF_VARS.secboot.fd |
318 |
%endif |
319 |
|
320 |
|
321 |
# build ovmf-ia32 |
322 |
%if 0%{?build_ovmf_ia32:1} |
323 |
mkdir -p ovmf-ia32 |
324 |
build ${OVMF_FLAGS} -a IA32 -p OvmfPkg/OvmfPkgIa32.dsc |
325 |
cp Build/OvmfIa32/*/FV/OVMF_CODE.fd ovmf-ia32/ |
326 |
rm -rf Build/OvmfIa32 |
327 |
|
328 |
# build ovmf-ia32 with secure boot |
329 |
build ${OVMF_SB_FLAGS} -a IA32 -p OvmfPkg/OvmfPkgIa32.dsc |
330 |
cp Build/OvmfIa32/*/FV/OVMF_CODE.fd ovmf-ia32/OVMF_CODE.secboot.fd |
331 |
|
332 |
# build ovmf-ia32 shell iso with EnrollDefaultKeys |
333 |
cp Build/OvmfIa32/*/IA32/Shell.efi ovmf-ia32/Shell.efi |
334 |
cp Build/OvmfIa32/*/IA32/EnrollDefaultKeys.efi ovmf-ia32/EnrollDefaultKeys.efi |
335 |
sh %{_sourcedir}/build-iso.sh ovmf-ia32/ |
336 |
%endif |
337 |
|
338 |
|
339 |
# build aarch64 firmware |
340 |
%if 0%{?build_aavmf_aarch64:1} |
341 |
mkdir -p aarch64 |
342 |
build $ARM_FLAGS -a AARCH64 -p ArmVirtPkg/ArmVirtQemu.dsc |
343 |
cp Build/ArmVirtQemu-AARCH64/DEBUG_*/FV/*.fd aarch64 |
344 |
dd of="aarch64/QEMU_EFI-pflash.raw" if="/dev/zero" bs=1M count=64 |
345 |
dd of="aarch64/QEMU_EFI-pflash.raw" if="aarch64/QEMU_EFI.fd" conv=notrunc |
346 |
dd of="aarch64/vars-template-pflash.raw" if="/dev/zero" bs=1M count=64 |
347 |
%endif |
348 |
|
349 |
|
350 |
# build aarch64 firmware |
351 |
%if 0%{?build_aavmf_arm:1} |
352 |
mkdir -p arm |
353 |
build $ARM_FLAGS -a ARM -p ArmVirtPkg/ArmVirtQemu.dsc |
354 |
cp Build/ArmVirtQemu-ARM/DEBUG_*/FV/*.fd arm |
355 |
dd of="arm/QEMU_EFI-pflash.raw" if="/dev/zero" bs=1M count=64 |
356 |
dd of="arm/QEMU_EFI-pflash.raw" if="arm/QEMU_EFI.fd" conv=notrunc |
357 |
dd of="arm/vars-template-pflash.raw" if="/dev/zero" bs=1M count=64 |
358 |
%endif |
359 |
|
360 |
%check |
361 |
%if 0%{?build_ovmf_x64:1} |
362 |
%if 0%{?qosb_testing} |
363 |
# Verify enrolled VARS file |
364 |
python3 qemu-ovmf-secureboot-%{qosb_version}/ovmf-vars-generator \ |
365 |
--qemu-binary /usr/bin/qemu-system-x86_64 \ |
366 |
--skip-enrollment \ |
367 |
--print-output \ |
368 |
--ovmf-binary ovmf/OVMF_CODE.secboot.fd \ |
369 |
--ovmf-template-vars ovmf/OVMF_VARS.fd \ |
370 |
--uefi-shell-iso ovmf/UefiShell.iso \ |
371 |
--no-download \ |
372 |
--kernel-path `rpm -qal kernel-desktop'*' | grep "\/vmlinuz$" -m 1` \ |
373 |
ovmf/OVMF_VARS.secboot.fd || : |
374 |
%endif |
375 |
%endif |
376 |
|
377 |
%install |
378 |
cp CryptoPkg/Library/OpensslLib/openssl/LICENSE LICENSE.openssl |
379 |
mkdir -p %{buildroot}%{_bindir} \ |
380 |
%{buildroot}%{_datadir}/%{name}/Conf \ |
381 |
%{buildroot}%{_datadir}/%{name}/Scripts |
382 |
install BaseTools/Source/C/bin/* \ |
383 |
%{buildroot}%{_bindir} |
384 |
install BaseTools/BinWrappers/PosixLike/LzmaF86Compress \ |
385 |
%{buildroot}%{_bindir} |
386 |
install BaseTools/BuildEnv \ |
387 |
%{buildroot}%{_datadir}/%{name} |
388 |
install BaseTools/Conf/*.template \ |
389 |
%{buildroot}%{_datadir}/%{name}/Conf |
390 |
install BaseTools/Scripts/GccBase.lds \ |
391 |
%{buildroot}%{_datadir}/%{name}/Scripts |
392 |
|
393 |
cp -R BaseTools/Source/Python %{buildroot}%{_datadir}/%{name}/Python |
394 |
for i in build BPDG Ecc GenDepex GenFds GenPatchPcdTable PatchPcdValue TargetTool Trim UPT; do |
395 |
echo '#!/bin/sh |
396 |
export PYTHONPATH=%{_datadir}/%{name}/Python |
397 |
exec python3 '%{_datadir}/%{name}/Python/$i/$i.py' "$@"' > %{buildroot}%{_bindir}/$i |
398 |
chmod +x %{buildroot}%{_bindir}/$i |
399 |
done |
400 |
|
401 |
mkdir -p %{buildroot}/usr/share/%{name} |
402 |
%if 0%{?build_ovmf_x64:1} |
403 |
cp -a ovmf %{buildroot}/usr/share/%{name} |
404 |
# Libvirt hardcodes this directory name |
405 |
mkdir %{buildroot}/usr/share/OVMF |
406 |
ln -sf ../%{name}/ovmf/OVMF_CODE.fd %{buildroot}/usr/share/OVMF |
407 |
ln -sf ../%{name}/ovmf/OVMF_CODE.secboot.fd %{buildroot}/usr/share/OVMF |
408 |
ln -sf ../%{name}/ovmf/OVMF_VARS.fd %{buildroot}/usr/share/OVMF |
409 |
ln -sf ../%{name}/ovmf/OVMF_VARS.secboot.fd %{buildroot}/usr/share/OVMF |
410 |
ln -sf ../%{name}/ovmf/UefiShell.iso %{buildroot}/usr/share/OVMF |
411 |
%endif |
412 |
%if 0%{?build_ovmf_ia32:1} |
413 |
cp -a ovmf-ia32 %{buildroot}/usr/share/%{name} |
414 |
%endif |
415 |
%if 0%{?build_aavmf_aarch64:1} |
416 |
cp -a aarch64 %{buildroot}/usr/share/%{name} |
417 |
# Libvirt hardcodes this directory name |
418 |
mkdir %{buildroot}/usr/share/AAVMF |
419 |
ln -sf ../%{name}/aarch64/QEMU_EFI-pflash.raw %{buildroot}/usr/share/AAVMF/AAVMF_CODE.fd |
420 |
ln -sf ../%{name}/aarch64/vars-template-pflash.raw %{buildroot}/usr/share/AAVMF/AAVMF_VARS.fd |
421 |
%endif |
422 |
%if 0%{?build_aavmf_arm:1} |
423 |
cp -a arm %{buildroot}/usr/share/%{name} |
424 |
ln -sf ../%{name}/arm/QEMU_EFI-pflash.raw %{buildroot}/usr/share/AAVMF/AAVMF32_CODE.fd |
425 |
%endif |
426 |
|
427 |
install qemu-ovmf-secureboot-%{qosb_version}/ovmf-vars-generator %{buildroot}%{_bindir} |
428 |
|
429 |
|
430 |
%files tools |
431 |
%license License.txt |
432 |
%license LICENSE.openssl |
433 |
%{_bindir}/Brotli |
434 |
%{_bindir}/DevicePath |
435 |
%{_bindir}/EfiRom |
436 |
%{_bindir}/GenCrc32 |
437 |
%{_bindir}/GenFfs |
438 |
%{_bindir}/GenFv |
439 |
%{_bindir}/GenFw |
440 |
%{_bindir}/GenSec |
441 |
%{_bindir}/LzmaCompress |
442 |
%{_bindir}/LzmaF86Compress |
443 |
%{_bindir}/Split |
444 |
%{_bindir}/TianoCompress |
445 |
%{_bindir}/VfrCompile |
446 |
%{_bindir}/VolInfo |
447 |
%dir %{_datadir}/%{name} |
448 |
%{_datadir}/%{name}/BuildEnv |
449 |
%{_datadir}/%{name}/Conf |
450 |
%{_datadir}/%{name}/Scripts |
451 |
|
452 |
%files tools-python |
453 |
%{_bindir}/build |
454 |
%{_bindir}/BPDG |
455 |
%{_bindir}/Ecc |
456 |
%{_bindir}/GenDepex |
457 |
%{_bindir}/GenFds |
458 |
%{_bindir}/GenPatchPcdTable |
459 |
%{_bindir}/PatchPcdValue |
460 |
%{_bindir}/TargetTool |
461 |
%{_bindir}/Trim |
462 |
%{_bindir}/UPT |
463 |
%dir %{_datadir}/%{name} |
464 |
%{_datadir}/%{name}/Python |
465 |
|
466 |
%files tools-doc |
467 |
%doc BaseTools/UserManuals/*.rtf |
468 |
|
469 |
%files qosb |
470 |
%license LICENSE.qosb |
471 |
%doc README.qosb |
472 |
%{_bindir}/ovmf-vars-generator |
473 |
|
474 |
%if 0%{?build_ovmf_x64:1} |
475 |
%files ovmf |
476 |
%license OvmfPkg/License.txt |
477 |
%license LICENSE.openssl |
478 |
%doc OvmfPkg/README |
479 |
%doc ovmf-whitepaper-c770f8c.txt |
480 |
%dir /usr/share/%{name} |
481 |
%dir /usr/share/%{name}/ovmf |
482 |
/usr/share/%{name}/ovmf/OVMF*.fd |
483 |
/usr/share/%{name}/ovmf/*.efi |
484 |
/usr/share/%{name}/ovmf/*.iso |
485 |
/usr/share/OVMF |
486 |
%endif |
487 |
|
488 |
%if 0%{?build_ovmf_ia32:1} |
489 |
%files ovmf-ia32 |
490 |
%license OvmfPkg/License.txt |
491 |
%license LICENSE.openssl |
492 |
%doc OvmfPkg/README |
493 |
%doc ovmf-whitepaper-c770f8c.txt |
494 |
%dir /usr/share/%{name} |
495 |
%dir /usr/share/%{name}/ovmf-ia32 |
496 |
/usr/share/%{name}/ovmf-ia32/OVMF*.fd |
497 |
/usr/share/%{name}/ovmf-ia32/*.efi |
498 |
/usr/share/%{name}/ovmf-ia32/*.iso |
499 |
%endif |
500 |
|
501 |
%if 0%{?build_aavmf_aarch64:1} |
502 |
%files aarch64 |
503 |
%license OvmfPkg/License.txt |
504 |
%license LICENSE.openssl |
505 |
%dir /usr/share/%{name} |
506 |
%dir /usr/share/%{name}/aarch64 |
507 |
/usr/share/%{name}/aarch64/QEMU*.fd |
508 |
/usr/share/%{name}/aarch64/*.raw |
509 |
/usr/share/AAVMF/AAVMF_* |
510 |
%endif |
511 |
|
512 |
%if 0%{?build_aavmf_arm:1} |
513 |
%files arm |
514 |
%license OvmfPkg/License.txt |
515 |
%license LICENSE.openssl |
516 |
%dir /usr/share/%{name} |
517 |
%dir /usr/share/%{name}/arm |
518 |
/usr/share/%{name}/arm/QEMU*.fd |
519 |
/usr/share/%{name}/arm/*.raw |
520 |
/usr/share/AAVMF/AAVMF32_* |
521 |
%endif |
522 |
|