summaryrefslogtreecommitdiff
path: root/libre/ovmf
diff options
context:
space:
mode:
Diffstat (limited to 'libre/ovmf')
-rw-r--r--libre/ovmf/0001-Fix-uninitialized-value-in-VfrCompiler-constructor.patch37
-rw-r--r--libre/ovmf/PKGBUILD61
2 files changed, 98 insertions, 0 deletions
diff --git a/libre/ovmf/0001-Fix-uninitialized-value-in-VfrCompiler-constructor.patch b/libre/ovmf/0001-Fix-uninitialized-value-in-VfrCompiler-constructor.patch
new file mode 100644
index 000000000..c04bcaef7
--- /dev/null
+++ b/libre/ovmf/0001-Fix-uninitialized-value-in-VfrCompiler-constructor.patch
@@ -0,0 +1,37 @@
+From ab9435c71d894018c88c8f5ff89f654f2029d3ed Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Thomas=20B=C3=A4chler?= <thomas@archlinux.org>
+Date: Sat, 1 Mar 2014 20:30:57 +0100
+Subject: [PATCH] Fix uninitialized value in VfrCompiler constructor.
+
+---
+ BaseTools/Source/C/VfrCompile/VfrCompiler.cpp | 1 +
+ BaseTools/Source/C/VfrCompile/VfrCompiler.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp b/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
+index dd34a1b..77b2cab 100644
+--- a/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
++++ b/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
+@@ -371,6 +371,7 @@ CVfrCompiler::CVfrCompiler (
+ {
+ mPreProcessCmd = (CHAR8 *) PREPROCESSOR_COMMAND;
+ mPreProcessOpt = (CHAR8 *) PREPROCESSOR_OPTIONS;
++ SET_RUN_STATUS(STATUS_UNKNOWN);
+
+ OptionInitialization(Argc, Argv);
+
+diff --git a/BaseTools/Source/C/VfrCompile/VfrCompiler.h b/BaseTools/Source/C/VfrCompile/VfrCompiler.h
+index ea20bbc..1603961 100644
+--- a/BaseTools/Source/C/VfrCompile/VfrCompiler.h
++++ b/BaseTools/Source/C/VfrCompile/VfrCompiler.h
+@@ -60,6 +60,7 @@ typedef struct {
+ } OPTIONS;
+
+ typedef enum {
++ STATUS_UNKNOWN = 0,
+ STATUS_INITIALIZED = 1,
+ STATUS_PREPROCESSED,
+ STATUS_COMPILEED,
+--
+1.9.0
+
diff --git a/libre/ovmf/PKGBUILD b/libre/ovmf/PKGBUILD
new file mode 100644
index 000000000..88592d662
--- /dev/null
+++ b/libre/ovmf/PKGBUILD
@@ -0,0 +1,61 @@
+# Maintainer (Arch): Thomas Bächler <thomas@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+pkgname=ovmf
+pkgver=20856
+pkgrel=1.parabola1
+arch=('any')
+pkgdesc="Tianocore UEFI firmware for qemu, with free FatPkg support"
+url="http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=EDK2"
+license=('custom')
+makedepends=('git' 'python2' 'iasl' 'nasm' 'perl-libwww')
+source=('edk2::git+https://github.com/tianocore/edk2#branch=UDK2017')
+sha256sums=('SKIP')
+options=(!makeflags)
+_toolchain_opt=GCC49
+
+pkgver() {
+ cd "${srcdir}"/edk2
+ printf "$(git rev-list --count HEAD)"
+}
+
+prepare() {
+ cd "${srcdir}"
+ # edk2 uses python everywhere, but expects python2
+ mkdir bin
+ ln -s /usr/bin/python2 bin/python
+}
+
+build() {
+ if [ "$CARCH" != "x86_64" ]; then
+ error "This package must be built under the x86_64 architecture."
+ false
+ fi
+ export PATH="${srcdir}/bin:$PATH"
+ cd "${srcdir}/"edk2
+ make -C BaseTools
+ export EDK_TOOLS_PATH="${srcdir}"/edk2/BaseTools
+ . edksetup.sh BaseTools
+
+ # Set RELEASE target, toolchain and number of build threads
+ sed "s|^TARGET[ ]*=.*|TARGET = RELEASE|; \
+ s|TOOL_CHAIN_TAG[ ]*=.*|TOOL_CHAIN_TAG = ${_toolchain_opt}|; \
+ s|MAX_CONCURRENT_THREAD_NUMBER[ ]*=.*|MAX_CONCURRENT_THREAD_NUMBER = $(nproc)|;" -i Conf/target.txt
+ # Build OVMF for ia32
+ sed "s|^TARGET_ARCH[ ]*=.*|TARGET_ARCH = IA32|; \
+ s|^ACTIVE_PLATFORM[ ]*=.*|ACTIVE_PLATFORM = OvmfPkg/OvmfPkgIa32.dsc|;" -i Conf/target.txt
+ ./BaseTools/BinWrappers/PosixLike/build
+ # Build OVMF for x64
+ sed "s|^TARGET_ARCH[ ]*=.*|TARGET_ARCH = X64|; \
+ s|^ACTIVE_PLATFORM[ ]*=.*|ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc|;" -i Conf/target.txt
+ ./BaseTools/BinWrappers/PosixLike/build
+}
+
+package() {
+ install -D -m644 "${srcdir}"/edk2/Build/OvmfIa32/RELEASE_${_toolchain_opt}/FV/OVMF.fd "${pkgdir}"/usr/share/ovmf/ovmf_ia32.bin
+ install -D -m644 "${srcdir}"/edk2/Build/OvmfIa32/RELEASE_${_toolchain_opt}/FV/OVMF_CODE.fd "${pkgdir}"/usr/share/ovmf/ovmf_code_ia32.bin
+ install -D -m644 "${srcdir}"/edk2/Build/OvmfIa32/RELEASE_${_toolchain_opt}/FV/OVMF_VARS.fd "${pkgdir}"/usr/share/ovmf/ovmf_vars_ia32.bin
+ install -D -m644 "${srcdir}"/edk2/Build/OvmfX64/RELEASE_${_toolchain_opt}/FV/OVMF.fd "${pkgdir}"/usr/share/ovmf/ovmf_x64.bin
+ install -D -m644 "${srcdir}"/edk2/Build/OvmfX64/RELEASE_${_toolchain_opt}/FV/OVMF_CODE.fd "${pkgdir}"/usr/share/ovmf/ovmf_code_x64.bin
+ install -D -m644 "${srcdir}"/edk2/Build/OvmfX64/RELEASE_${_toolchain_opt}/FV/OVMF_VARS.fd "${pkgdir}"/usr/share/ovmf/ovmf_vars_x64.bin
+ install -D -m644 "${srcdir}"/edk2/OvmfPkg/License.txt "${pkgdir}"/usr/share/licenses/ovmf/License.txt
+}