[gentoo-commits] repo/gentoo:master commit in: sys-firmware/edk2-ovmf/, sys-firmware/edk2-ovmf/files/
commit: 08271e9f6435f27dbb65567926c68bb012cf4c74 Author: Sam James gentoo org> AuthorDate: Mon Aug 28 19:09:25 2023 + Commit: Sam James gentoo org> CommitDate: Mon Aug 28 19:09:52 2023 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=08271e9f sys-firmware/edk2-ovmf: fix build w/ binutils-2.41[hardened] Closes: https://bugs.gentoo.org/913110 Signed-off-by: Sam James gentoo.org> sys-firmware/edk2-ovmf/edk2-ovmf-202202.ebuild | 6 +++ .../edk2-ovmf-202202-binutils-2.41-textrels.patch | 21 +++ .../files/edk2-ovmf-202202-lld-textrels.patch | 43 ++ 3 files changed, 70 insertions(+) diff --git a/sys-firmware/edk2-ovmf/edk2-ovmf-202202.ebuild b/sys-firmware/edk2-ovmf/edk2-ovmf-202202.ebuild index 322c5a16bc5d..04de01f008bb 100644 --- a/sys-firmware/edk2-ovmf/edk2-ovmf-202202.ebuild +++ b/sys-firmware/edk2-ovmf/edk2-ovmf-202202.ebuild @@ -36,6 +36,8 @@ RDEPEND="!sys-firmware/edk2-ovmf-bin" PATCHES=( "${FILESDIR}/${PN}-202105-werror.patch" + "${FILESDIR}/${PN}-202202-lld-textrels.patch" + "${FILESDIR}/${PN}-202202-binutils-2.41-textrels.patch" ) S="${WORKDIR}/edk2-edk2-stable${PV}" @@ -104,6 +106,10 @@ src_compile() { -D SMM_REQUIRE \ -D EXCLUDE_SHELL_FROM_FD" + export LDFLAGS="-z notext" + export EXTRA_LDFLAGS="-z notext" + export DLINK_FLAGS="-z notext" + emake ARCH=${TARGET_ARCH} -C BaseTools . ./edksetup.sh diff --git a/sys-firmware/edk2-ovmf/files/edk2-ovmf-202202-binutils-2.41-textrels.patch b/sys-firmware/edk2-ovmf/files/edk2-ovmf-202202-binutils-2.41-textrels.patch new file mode 100644 index ..22d33c9097aa --- /dev/null +++ b/sys-firmware/edk2-ovmf/files/edk2-ovmf-202202-binutils-2.41-textrels.patch @@ -0,0 +1,21 @@ +https://bugs.gentoo.org/913110 +--- a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template +@@ -1906,7 +1906,7 @@ DEFINE GCC48_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z comm + DEFINE GCC48_IA32_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables -Wno-address + DEFINE GCC48_X64_CC_FLAGS= DEF(GCC48_ALL_CC_FLAGS) -m64 -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))" -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables -Wno-address + DEFINE GCC48_IA32_X64_ASLDLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable +-DEFINE GCC48_IA32_X64_DLINK_FLAGS= DEF(GCC48_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive ++DEFINE GCC48_IA32_X64_DLINK_FLAGS= DEF(GCC48_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive -Wl,-z,notext + DEFINE GCC48_IA32_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x220 DEF(GCC_DLINK2_FLAGS_COMMON) + DEFINE GCC48_X64_DLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_FLAGS) -Wl,-melf_x86_64,--oformat=elf64-x86-64,-pie + DEFINE GCC48_X64_DLINK2_FLAGS= -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 DEF(GCC_DLINK2_FLAGS_COMMON) +@@ -1929,7 +1929,7 @@ DEFINE GCC49_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -fno-pic -fno-pi + DEFINE GCC49_X64_CC_FLAGS= DEF(GCC48_X64_CC_FLAGS) + DEFINE GCC49_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x40 + DEFINE GCC49_IA32_X64_ASLDLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0 DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable +-DEFINE GCC49_IA32_X64_DLINK_FLAGS= DEF(GCC49_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive ++DEFINE GCC49_IA32_X64_DLINK_FLAGS= DEF(GCC49_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive -Wl,-z,notext + DEFINE GCC49_IA32_DLINK2_FLAGS = DEF(GCC48_IA32_DLINK2_FLAGS) + DEFINE GCC49_X64_DLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_FLAGS) -Wl,-melf_x86_64,--oformat=elf64-x86-64,-pie + DEFINE GCC49_X64_DLINK2_FLAGS= DEF(GCC48_X64_DLINK2_FLAGS) diff --git a/sys-firmware/edk2-ovmf/files/edk2-ovmf-202202-lld-textrels.patch b/sys-firmware/edk2-ovmf/files/edk2-ovmf-202202-lld-textrels.patch new file mode 100644 index ..eb8b6296fcff --- /dev/null +++ b/sys-firmware/edk2-ovmf/files/edk2-ovmf-202202-lld-textrels.patch @@ -0,0 +1,43 @@ +https://bugs.gentoo.org/913110 +https://github.com/tianocore/edk2/commit/a257988f590ba90dd8394dd6bc7014ae9d814a08 + +From a257988f590ba90dd8394dd6bc7014ae9d814a08 Mon Sep 17 00:00:00 2001 +From: Ard Biesheuvel +Date: Mon,
[gentoo-commits] repo/gentoo:master commit in: sys-firmware/edk2-ovmf/, sys-firmware/edk2-ovmf/files/
commit: 9c3662f5ee8b460227b2e5fc1ec46aa88f03e982 Author: John Helmert III gentoo org> AuthorDate: Sun Aug 29 05:12:27 2021 + Commit: John Helmert III gentoo org> CommitDate: Wed Sep 8 19:31:07 2021 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9c3662f5 sys-firmware/edk2-ovmf: don't build with -Werror, python bump Closes: https://bugs.gentoo.org/801925 Acked-By: Matthias Maier gentoo.org> Signed-off-by: John Helmert III gentoo.org> sys-firmware/edk2-ovmf/edk2-ovmf-202105-r1.ebuild | 3 +- .../edk2-ovmf/files/edk2-ovmf-202105-werror.patch | 38 ++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/sys-firmware/edk2-ovmf/edk2-ovmf-202105-r1.ebuild b/sys-firmware/edk2-ovmf/edk2-ovmf-202105-r1.ebuild index 11376aff5d4..f2f2b9a2597 100644 --- a/sys-firmware/edk2-ovmf/edk2-ovmf-202105-r1.ebuild +++ b/sys-firmware/edk2-ovmf/edk2-ovmf-202105-r1.ebuild @@ -4,7 +4,7 @@ EAPI=7 PYTHON_REQ_USE="sqlite" -PYTHON_COMPAT=( python3_{7,8,9} ) +PYTHON_COMPAT=( python3_{8,9,10} ) inherit python-any-r1 readme.gentoo-r1 @@ -54,6 +54,7 @@ DEPEND+=" RDEPEND="" PATCHES=( + "${FILESDIR}/${PN}-202105-werror.patch" ) S="${WORKDIR}/edk2-edk2-stable${PV}" diff --git a/sys-firmware/edk2-ovmf/files/edk2-ovmf-202105-werror.patch b/sys-firmware/edk2-ovmf/files/edk2-ovmf-202105-werror.patch new file mode 100644 index 000..db71faed772 --- /dev/null +++ b/sys-firmware/edk2-ovmf/files/edk2-ovmf-202105-werror.patch @@ -0,0 +1,38 @@ +diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template +index 498696e..8a360f4 100755 +--- a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template +@@ -1863,7 +1863,7 @@ NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_N + *_*_*_DTCPP_PATH = DEF(DTCPP_BIN) + *_*_*_DTC_PATH = DEF(DTC_BIN) + +-DEFINE GCC_ALL_CC_FLAGS= -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common ++DEFINE GCC_ALL_CC_FLAGS= -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Wno-array-bounds -include AutoGen.h -fno-common + DEFINE GCC_IA32_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe + DEFINE GCC_X64_CC_FLAGS= DEF(GCC_ALL_CC_FLAGS) -mno-red-zone -Wno-address -mno-stack-arg-probe + DEFINE GCC_ARM_CC_FLAGS= DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -mabi=aapcs -fno-short-enums -funsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mthumb -mfloat-abi=soft -fno-pic -fno-pie +diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile +index 0df728f..49f9706 100644 +--- a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile +@@ -82,17 +82,17 @@ BUILD_OPTFLAGS = -O2 $(EXTRA_OPTFLAGS) + + ifeq ($(DARWIN),Darwin) + # assume clang or clang compatible flags on OS X +-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror \ ++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall \ + -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -g + else + ifeq ($(CXX), llvm) + BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -fwrapv \ +--fno-delete-null-pointer-checks -Wall -Werror \ ++-fno-delete-null-pointer-checks -Wall \ + -Wno-deprecated-declarations -Wno-self-assign \ + -Wno-unused-result -nostdlib -g + else + BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -fwrapv \ +--fno-delete-null-pointer-checks -Wall -Werror \ ++-fno-delete-null-pointer-checks -Wall \ + -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict \ + -Wno-unused-result -nostdlib -g + endif
[gentoo-commits] repo/gentoo:master commit in: sys-firmware/edk2-ovmf/, sys-firmware/edk2-ovmf/files/
commit: 151b7c4e15ef366da00ac8350c35484b0fd582c9 Author: Matthias Maier gentoo org> AuthorDate: Mon Feb 12 00:41:59 2018 + Commit: Matthias Maier gentoo org> CommitDate: Mon Feb 12 00:42:48 2018 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=151b7c4e sys-firmware/edk2-ovmf: version bump to 2017_p20180211 Package-Manager: Portage-2.3.24, Repoman-2.3.6 sys-firmware/edk2-ovmf/Manifest| 2 + .../edk2-ovmf/edk2-ovmf-2017_p20180211.ebuild | 113 + ...k2-ovmf-2017_p20180211-build_system_fixes.patch | 91 + 3 files changed, 206 insertions(+) diff --git a/sys-firmware/edk2-ovmf/Manifest b/sys-firmware/edk2-ovmf/Manifest index c941b85849e..a061a11c712 100644 --- a/sys-firmware/edk2-ovmf/Manifest +++ b/sys-firmware/edk2-ovmf/Manifest @@ -1,2 +1,4 @@ +DIST edk2-ovmf-2017_p20180211-bin.tar.xz 910896 BLAKE2B 2d2ead282cebc1254cae2b10042f809e887a17a83fe67998ddcadf86cdf07e615594b243ab35d3fa8a6d6ce218f8f0bad758ee1db2ab4ff6c08d65419f4078b0 SHA512 88c3c4d7cecc2af1cc4dfa06686f34cc3a5facfb24750c766b47f53dec7267b95b58b391d23038e6a589d1687d2c117f1912d10118e26f99c0906c3d8e90deed +DIST edk2-ovmf-2017_p20180211.tar.xz 22977736 BLAKE2B 4d95eaf3017668197632ab7e035ad6c9f1490bde3d27e575170541fd64773fef8676406c88451b8dc996d9d7dd625fa389279105951f02e08f6de025075bd172 SHA512 ee3d70da562ed7dc4647576da8605d25fd9f991b4a96c2ed106e0d1b697af9e0624ad161750ccba7ab3db553ab1c6177780dd9c29a70073eb17729e9ae24c5a7 DIST edk2-ovmf-2017_pre20170505-bin.tar.xz 874904 BLAKE2B a381d3ca20cf0e1f3aff74335c1d783bb80f0b5c7a8716d8154f2e0a19255780e5b08fae37cab9fa484fc1cbe3bc3b5d40339634ee3b0808bd2b3a8b2849730a SHA512 c7a7d83758214b6ab63c6cefe827a601aaa7656b7f01e03413c84d913078a2b0d8037f70de34d42d8e1614aee794e0ffd7d9e62314eb4e04c21256b70338af5c DIST edk2-ovmf-2017_pre20170505.tar.xz 22952060 BLAKE2B 7d4da1fed8e76f643e2856be2485f6c398896d61b7ad8fb013e891fd73f69c4acfd9980e7f95aec002cee647719a622711100f8cb6829edecae35ed31b3ef563 SHA512 6da859360448fd6d04d1492c88a7e935f7108c524f7ccfe6aa4c13bf9af9695dbc4a5b8efa274adc86d3105946aaa1ba80bcd9713facdca153f1a3d873797b63 diff --git a/sys-firmware/edk2-ovmf/edk2-ovmf-2017_p20180211.ebuild b/sys-firmware/edk2-ovmf/edk2-ovmf-2017_p20180211.ebuild new file mode 100644 index 000..ff5c5d8fabd --- /dev/null +++ b/sys-firmware/edk2-ovmf/edk2-ovmf-2017_p20180211.ebuild @@ -0,0 +1,113 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_REQ_USE="sqlite" +PYTHON_COMPAT=( python2_7 ) + +inherit eutils python-any-r1 readme.gentoo-r1 + +DESCRIPTION="UEFI firmware for 64-bit x86 virtual machines" +HOMEPAGE="https://github.com/tianocore/edk2; + +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} +" +SOURCE_DEPEND=" + >=dev-lang/nasm-2.0.7 + >=sys-power/iasl-20160729 + ${PYTHON_DEPS} +" +DEPEND="" +RDEPEND="" + +if [[ ${PV} == "" ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/tianocore/edk2; + DEPEND+=" + ${SOURCE_DEPEND}" +else + SRC_URI=" + binary? ( https://dev.gentoo.org/~tamiko/distfiles/${P}-bin.tar.xz ) + !binary? ( https://dev.gentoo.org/~tamiko/distfiles/${P}.tar.xz )" + KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86 ~x86-fbsd" + IUSE="+binary" + REQUIRED_USE+=" + !amd64? ( binary ) + " + DEPEND+=" + !binary? ( amd64? ( ${SOURCE_DEPEND} ) )" +fi + +LICENSE="BSD-2 MIT" +SLOT="0" + +DISABLE_AUTOFORMATTING=true +DOC_CONTENTS="This package contains the tianocore edk2 UEFI firmware for 64-bit x86 +virtual machines. The firmware is located under + /usr/share/edk2-ovmf/OVMF.fd + /usr/share/edk2-ovmf/OVMF_CODE.fd + /usr/share/edk2-ovmf/OVMF_VARS.fd + +The firmware does not support csm (due to no free csm implementation +available). If you need a firmware with csm support you have to download +one for yourself. Firmware blobs are commonly labeled + OVMF{,_CODE,_VARS}-with-csm.fd + +In order to use the firmware you can run qemu the following way + + $ qemu-system-x86_64 \ + -drive file=/usr/share/edk2-ovmf/OVMF.fd,if=pflash,format=raw,unit=0,readonly=on \ + ... + +You can register the firmware for use in libvirt by adding to /etc/libvirt/qemu.conf: + nvram = [ + \"/usr/share/edk2-ovmf/OVMF_CODE.fd:/usr/share/edk2-ovmf/OVMF_VARS.fd\" + ]" + +PATCHES=( + "${FILESDIR}"/${P}-build_system_fixes.patch +) + +pkg_setup() { +[[ ${PV} != "" ]] && use binary || python-any-r1_pkg_setup +} + +src_prepare() { + if [[ ${PV} != "" ]] && use binary; then + eapply_user + return + fi + default +} + +src_compile() { + TARGET_ARCH=X64 + TARGET_NAME=RELEASE + TARGET_TOOLS=GCC49 + + [[ ${PV} != "" ]] && use binary && return
[gentoo-commits] repo/gentoo:master commit in: sys-firmware/edk2-ovmf/, sys-firmware/edk2-ovmf/files/
commit: cba60e1f979c784a109dc64182941b000f69c923 Author: Matthias Maier gentoo org> AuthorDate: Sat May 6 05:51:39 2017 + Commit: Matthias Maier gentoo org> CommitDate: Sat May 6 06:01:10 2017 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cba60e1f sys-firmware/edk2-ovmf: initial commit, version 2017_pre20170505 Package-Manager: Portage-2.3.5, Repoman-2.3.2 sys-firmware/edk2-ovmf/Manifest| 2 + .../edk2-ovmf/edk2-ovmf-2017_pre20170505.ebuild| 108 +++ ...-ovmf-2017_pre20170505-build_system_fixes.patch | 145 + sys-firmware/edk2-ovmf/metadata.xml| 15 +++ 4 files changed, 270 insertions(+) diff --git a/sys-firmware/edk2-ovmf/Manifest b/sys-firmware/edk2-ovmf/Manifest new file mode 100644 index 000..17a4db06c92 --- /dev/null +++ b/sys-firmware/edk2-ovmf/Manifest @@ -0,0 +1,2 @@ +DIST edk2-ovmf-2017_pre20170505-bin.tar.xz 874904 SHA256 81d3f405c6a3387f93d6a82a1662eaef3b15ce4e486e41020d97b46b95c1499a SHA512 c7a7d83758214b6ab63c6cefe827a601aaa7656b7f01e03413c84d913078a2b0d8037f70de34d42d8e1614aee794e0ffd7d9e62314eb4e04c21256b70338af5c WHIRLPOOL 686e0b190c34c4d349cbd68f8c0451852b3e2fb3de3cdd75f34c30fba3e7d009c69a27761bf9d698d797cc86d7e7c142e4f38f0156cf6bf87bab92feaa81af6f +DIST edk2-ovmf-2017_pre20170505.tar.xz 22952060 SHA256 5fb227595bde9da7bb4c452be0b3f7867984637b1caa40165c86ed31bf591218 SHA512 6da859360448fd6d04d1492c88a7e935f7108c524f7ccfe6aa4c13bf9af9695dbc4a5b8efa274adc86d3105946aaa1ba80bcd9713facdca153f1a3d873797b63 WHIRLPOOL 9916544a2d8fec2fc489f10e5cfd283d3d448dcf008b9dabc75712469b7a8913b021d9321d670295a040cd382f13927fc5bcc865ca148a0a5a66968eff6ea49a diff --git a/sys-firmware/edk2-ovmf/edk2-ovmf-2017_pre20170505.ebuild b/sys-firmware/edk2-ovmf/edk2-ovmf-2017_pre20170505.ebuild new file mode 100644 index 000..46896bd2aea --- /dev/null +++ b/sys-firmware/edk2-ovmf/edk2-ovmf-2017_pre20170505.ebuild @@ -0,0 +1,108 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python2_7 ) + +inherit eutils python-any-r1 + +DESCRIPTION="UEFI firmware for 64-bit x86 virtual machines" +HOMEPAGE="http://www.tianocore.org/edk2 https://github.com/tianocore/edk2; + +# inherit git-r3 +# EGIT_REPO_URI="https://github.com/tianocore/edk2; +# EGIT_BRANCH="UDK2017" +# EGIT_COMMIT="f30c40618b1f3537705b450a91ce00b9e587badb" + +SRC_URI=" + binary? ( https://dev.gentoo.org/~tamiko/distfiles/${P}-bin.tar.xz ) + !binary? ( https://dev.gentoo.org/~tamiko/distfiles/${P}.tar.xz )" + +LICENSE="BSD-2 MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86 ~x86-fbsd" +IUSE="+binary" + +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + !amd64? ( binary )" + +DEPEND=" + !binary? ( + amd64? ( + >=dev-lang/nasm-2.0.7 + >=sys-power/iasl-20160729 + ${PYTHON_DEPS} + ) + )" +RDEPEND="" + +PATCHES=( + "${FILESDIR}"/${P}-build_system_fixes.patch +) + +DOC_CONTENTS=" +This package contains the tianocore edk2 UEFI firmware for 64-bit x86 +virtual machines. The firmware is located under + /usr/share/edk2-ovmf/OVMF.fd + /usr/share/edk2-ovmf/OVMF_CODE.fd + /usr/share/edk2-ovmf/OVMF_VARS.fd + +The firmware does not support csm (due to no free csm implementation +available). If you need a firmware with csm support you have to download +one for yourself. Firmware blobs are commonly labeled + OVMF{,_CODE,_VARS}-with-csm.fd + +In order to use the firmware you can run qemu the following way + + $ qemu-system-x86_64 \ + -drive file=/usr/share/edk2-ovmf/OVMF.fd,if=pflash,format=raw,unit=0,readonly=on \ + ... + +You can register the firmware for use in libvirt by adding to /etc/libvirt/qemu.conf: + nvram = [ + "/usr/share/edk2-ovmf/OVMF_CODE.fd:/usr/share/edk2-ovmf/OVMF_VARS.fd" + ]" + +pkg_setup() { + use binary || python-any-r1_pkg_setup +} + +src_prepare() { + if use binary; then + eapply_user + return + fi + default +} + +src_compile() { + TARGET_ARCH=X64 + TARGET_NAME=RELEASE + TARGET_TOOLS=GCC49 + + use binary && return + + emake ARCH=${TARGET_ARCH} -C BaseTools -j1 + + . ./edksetup.sh + + ./OvmfPkg/build.sh \ + -a "${TARGET_ARCH}" -b "${TARGET_NAME}" -t "${TARGET_TOOLS}" \ + -D FD_SIZE_2MB \ + || die "OvmfPkg/build.sh failed" +} + +src_install() { + local builddir="Build/OvmfX64/${TARGET_NAME}_${TARGET_TOOLS}/FV" + + insinto /usr/share/${PN} + doins "${builddir}"/OVMF{,_CODE,_VARS}.fd + + readme.gentoo_create_doc +} + +pkg_postinst() { + readme.gentoo_print_elog +} diff --git