From 33bf0acc91472ec5e30e692b35fd16a16b5e10d3 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Fri, 16 Mar 2018 13:58:28 +0100 Subject: [PATCH] Initial import new repository splitting out the EDK2 (Efi Development Kit II) backed OVMF (Open Virtual Machine Firmware) from pve-qemu package, where only pre-built BLOBs were tracked. Borrow some the built style from the Debian Upstream package. We do not provide/conflict ovmf from Debian, but rather see this as it's own package, providing the FW files under its own path. Signed-off-by: Thomas Lamprecht --- .gitignore | 4 +++ .gitmodules | 3 ++ Makefile | 47 +++++++++++++++++++++++++ debian/Logo.bmp | Bin 0 -> 49078 bytes debian/changelog | 11 ++++++ debian/clean | 4 +++ debian/compat | 1 + debian/control | 20 +++++++++++ debian/copyright | 29 ++++++++++++++++ debian/pve-edk2-firmware.install | 2 ++ debian/rules | 58 +++++++++++++++++++++++++++++++ edk2 | 1 + 12 files changed, 180 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 Makefile create mode 100644 debian/Logo.bmp create mode 100644 debian/changelog create mode 100644 debian/clean create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/pve-edk2-firmware.install create mode 100755 debian/rules create mode 160000 edk2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a4c231b --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.deb +*.buildinfo +*.changes +edk2.build diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..e24b385 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "edk2"] + path = edk2 + url = ../mirror_edk2 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..d24eacc --- /dev/null +++ b/Makefile @@ -0,0 +1,47 @@ +PACKAGE=pve-edk2-firmware +# version and package release is controlled over d/changelog +VER=$(shell dpkg-parsechangelog -S version) + +SRCDIR=edk2 +BUILDDIR=${SRCDIR}.build + +GITVERSION:=$(shell git rev-parse HEAD) + +DEB=${PACKAGE}_${VER}_all.deb + +all: ${DEB} + @echo ${DEB} + +.PHONY: deb +deb: ${DEB} +${DEB}: | submodule + rm -rf ${BUILDDIR} + cp -rpa ${SRCDIR} ${BUILDDIR} + cp -a debian ${BUILDDIR} + echo "git clone git://git.proxmox.com/git/pve-edk2-firmware.git\\ngit checkout ${GITVERSION}" > ${BUILDDIR}/debian/SOURCE + cd ${BUILDDIR}; dpkg-buildpackage -b -uc -us + lintian ${DEB} + @echo ${DEB} + +.PHONY: submodule +submodule: + test -f "${SRCDIR}/Readme.md" || git submodule update --init + +.PHONY: update_modules +update_modules: submodule + git submodule foreach 'git pull --ff-only origin master' + +.PHONY: upload +upload: ${DEB} + tar cf - ${DEB}|ssh -X repoman@repo.proxmox.com -- upload --product pve --dist stretch + +.PHONY: distclean +distclean: clean + +.PHONY: clean +clean: + rm -rf *~ debian/*~ *.deb ${BUILDDIR} *.changes *.dsc *.buildinfo + +.PHONY: dinstall +dinstall: ${DEB} + dpkg -i ${DEB} diff --git a/debian/Logo.bmp b/debian/Logo.bmp new file mode 100644 index 0000000000000000000000000000000000000000..4c46dd84772b32fa5c70e31d2483d66850495dc3 GIT binary patch literal 49078 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 Fri, 16 Mar 2018 12:10:02 +0200 + diff --git a/debian/clean b/debian/clean new file mode 100644 index 0000000..8772fda --- /dev/null +++ b/debian/clean @@ -0,0 +1,4 @@ +Conf/BuildEnv.sh +Conf/build_rule.txt +Conf/target.txt +Conf/tools_def.txt diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..f599e28 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +10 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..31b4100 --- /dev/null +++ b/debian/control @@ -0,0 +1,20 @@ +Source: pve-edk2-firmware +Section: misc +Priority: extra +Maintainer: Proxmox Support Team +Build-Depends: debhelper (>= 9), + iasl, + nasm, + python, + uuid-dev, +Homepage: http://www.tianocore.org +Standards-Version: 3.9.8 + +Package: pve-edk2-firmware +Architecture: all +Depends: ${misc:Depends}, +Description: edk2 based firmware modules for virtual machines + Contains OVMF. Open Virtual Machine Firmware (OVMF) is a build of EDK II for + virtual machines. It includes full support for UEFI, including Secure Boot, + allowing use of UEFI in place of a traditional BIOS in your VM. + Proxmox VE specific release with disabled secure boot. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..5941725 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,29 @@ +Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved +Copyright (c) 2008 - 2010, Apple Inc. All rights reserved. +Copyright (c) 2011 - 2015, ARM Limited. All rights reserved. +Copyright (c) 2014 - 2015, Linaro Limited. All rights reserved. +Copyright (c) 2013 - 2015, Red Hat, Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/debian/pve-edk2-firmware.install b/debian/pve-edk2-firmware.install new file mode 100644 index 0000000..1c99312 --- /dev/null +++ b/debian/pve-edk2-firmware.install @@ -0,0 +1,2 @@ +Build/OvmfX64/RELEASE_*GCC*/FV/OVMF_CODE.fd /usr/share/pve-edk2-firmware +Build/OvmfX64/RELEASE_*GCC*/FV/OVMF_VARS.fd /usr/share/pve-edk2-firmware diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..da3cc01 --- /dev/null +++ b/debian/rules @@ -0,0 +1,58 @@ +#!/usr/bin/make -f +SHELL=/bin/bash + +# this is a simplified version from the upstream package + +DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) + +EDK2_TOOLCHAIN = GCC5 # for GCC5 and newer, LTO enabled +export $(EDK2_TOOLCHAIN)_AARCH64_PREFIX=aarch64-linux-gnu- + +ifeq ($(DEB_BUILD_ARCH),amd64) + EDK2_BUILD_ARCH=X64 + EDK2_HOST_ARCH=X64 +endif +ifeq ($(DEB_BUILD_ARCH),arm64) + EDK2_BUILD_ARCH=AARCH64 +endif + +# Clear variables used internally by the edk2 build system +undefine WORKSPACE +undefine ECP_SOURCE +undefine EDK_SOURCE +undefine EFI_SOURCE +undefine EDK_TOOLS_PATH +undefine CONF_PATH + +%: + dh $@ + +override_dh_auto_build: build-ovmf + +setup-build: + cp -a debian/Logo.bmp MdeModulePkg/Logo/Logo.bmp + make -C BaseTools ARCH=$(EDK2_BUILD_ARCH) + # call this when building too, it modifies the shell environment + . ./edksetup.sh + +build-ovmf: EDK2_ARCH_DIR=X64 +build-ovmf: EDK2_HOST_ARCH=X64 +build-ovmf: setup-build + set -e; . ./edksetup.sh; \ + OvmfPkg/build.sh \ + -b RELEASE \ + -a $(EDK2_HOST_ARCH) \ + -t $(EDK2_TOOLCHAIN) \ + -DSECURE_BOOT_ENABLE=FALSE \ + -DFD_SIZE_2MB \ + -n $$(getconf _NPROCESSORS_ONLN) + +override_dh_auto_clean: + set -e; \ + if [ -d BaseTools/Source/C/bin ]; then \ + . ./edksetup.sh; build clean; \ + make -C BaseTools clean; \ + fi + rm -rf Conf/.cache Build .pc-post + +.PHONY: setup-build build-ovmf diff --git a/edk2 b/edk2 new file mode 160000 index 0000000..d0976b9 --- /dev/null +++ b/edk2 @@ -0,0 +1 @@ +Subproject commit d0976b9accedfd1f45fe2f81c59351ed17f34aa0 -- 2.39.2