# Maintainer: Thomas Bächler _edk_ver=202002 pkgname=ovmf pkgver=$_edk_ver epoch=1 pkgrel=1 arch=('any') pkgdesc="Tianocore UEFI firmware for qemu." url="http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=EDK2" license=('custom') makedepends=('python' 'iasl' 'nasm' 'subversion' 'perl-libwww' 'bc') _openssl_ver=1.1.1b # it should be 1.1.1d here but it has a compilation issue https://github.com/openssl/openssl/issues/9858 _edk2_tag=edk2-stable${_edk_ver} source=(https://github.com/tianocore/edk2/archive/${_edk2_tag}.zip https://www.openssl.org/source/openssl-$_openssl_ver.tar.gz{,.asc} 60-edk2-ovmf-i386.json 60-edk2-ovmf-x86_64.json) # FS#64175 ; the file content should match https://git.qemu.org/?p=qemu.git;a=tree;f=pc-bios/descriptors sha256sums=('280865c85cadf1d1d7029984b734d3245872a4aa631c6150025285e361e3df77' '5c557b023230413dfb0756f3137a13e6d726838ccd1430888ad15bfb2b43ea4b' 'SKIP' '088830129f80643dfdee15af5ffddf2b309b062e3b2ee28faf2f01a43e656ba3' 'b8f189f09593298c53e8b2afceadb17610b047fde51f4658e7373caeb3d0b856') validpgpkeys=(8657ABB260F056B1E5190839D9C4D26D0E604491) options=(!makeflags) _toolchain_opt=GCC5 prepare() { # edk2 uses python everywhere, but expects python2 #mkdir -p bin #ln -sf /usr/bin/python2 bin/python rm -rf "$srcdir"/edk2-${_edk2_tag}/CryptoPkg/Library/OpensslLib/openssl ln -sf "$srcdir"/openssl-$_openssl_ver $srcdir/edk2-${_edk2_tag}/CryptoPkg/Library/OpensslLib/openssl } build() { export PATH="${srcdir}/bin:$PATH" cd edk2-${_edk2_tag} make -C BaseTools export EDK_TOOLS_PATH="${srcdir}"/edk2-${_edk2_tag}/BaseTools . edksetup.sh BaseTools # 32bit build ./BaseTools/BinWrappers/PosixLike/build -t $_toolchain_opt -a IA32 -p OvmfPkg/OvmfPkgIa32.dsc -n $(nproc) -b RELEASE -D FD_SIZE_2MB -D NETWORK_IP6_ENABLE -D TPM2_ENABLE -D SECURE_BOOT_ENABLE -D HTTP_BOOT_ENABLE -D TLS_ENABLE # 64bit build ./BaseTools/BinWrappers/PosixLike/build -t $_toolchain_opt -a X64 -p OvmfPkg/OvmfPkgX64.dsc -n $(nproc) -b RELEASE -D FD_SIZE_2MB -D NETWORK_IP6_ENABLE -D TPM2_ENABLE -D SECURE_BOOT_ENABLE -D HTTP_BOOT_ENABLE -D TLS_ENABLE } package() { install -D -m644 "${srcdir}"/60-edk2-ovmf-i386.json "${pkgdir}"/usr/share/qemu/firmware/60-edk2-ovmf-i386.json install -D -m644 "${srcdir}"/edk2-${_edk2_tag}/Build/OvmfIa32/RELEASE_${_toolchain_opt}/FV/OVMF.fd "${pkgdir}"/usr/share/ovmf/ia32/OVMF.fd install -D -m644 "${srcdir}"/edk2-${_edk2_tag}/Build/OvmfIa32/RELEASE_${_toolchain_opt}/FV/OVMF_CODE.fd "${pkgdir}"/usr/share/ovmf/ia32/OVMF_CODE.fd install -D -m644 "${srcdir}"/edk2-${_edk2_tag}/Build/OvmfIa32/RELEASE_${_toolchain_opt}/FV/OVMF_VARS.fd "${pkgdir}"/usr/share/ovmf/ia32/OVMF_VARS.fd install -D -m644 "${srcdir}"/60-edk2-ovmf-x86_64.json "${pkgdir}"/usr/share/qemu/firmware/60-edk2-ovmf-x86_64.json install -D -m644 "${srcdir}"/edk2-${_edk2_tag}/Build/OvmfX64/RELEASE_${_toolchain_opt}/FV/OVMF.fd "${pkgdir}"/usr/share/ovmf/x64/OVMF.fd install -D -m644 "${srcdir}"/edk2-${_edk2_tag}/Build/OvmfX64/RELEASE_${_toolchain_opt}/FV/OVMF_CODE.fd "${pkgdir}"/usr/share/ovmf/x64/OVMF_CODE.fd install -D -m644 "${srcdir}"/edk2-${_edk2_tag}/Build/OvmfX64/RELEASE_${_toolchain_opt}/FV/OVMF_VARS.fd "${pkgdir}"/usr/share/ovmf/x64/OVMF_VARS.fd install -D -m644 "${srcdir}"/edk2-${_edk2_tag}/OvmfPkg/License.txt "${pkgdir}"/usr/share/licenses/ovmf/License.txt }