[gentoo-commits] repo/gentoo:master commit in: sys-firmware/edk2-ovmf/, sys-firmware/edk2-ovmf/files/

2023-08-28 Thread Sam James
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/

2021-09-08 Thread John Helmert III
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/

2018-02-11 Thread Matthias Maier
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/

2017-05-06 Thread Matthias Maier
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