On Fri, Aug 18, 2023 at 02:05:31PM -0700, Elliott Mitchell wrote:
> >From reading the available information I suspect Tianocore/EDK2 may have
> tried to move some functionality to a distinct build and neither setup
> quite works.  Notably there is now a "OvmfPkg/OvmfXen.dsc" build
> configuration.  The OVMF.fd for Qemu for Xen functionality may have been
> moved /here/.  There might also be an attempt at functionality similar to
> "ArmVirtPkg/ArmVirtXen.dsc" (Debian 978595) for x86.

Now confirmed reverting to 2020.11-2+deb11u1 takes care of the issues I'm
running into.  I've been able to build OvmfPkg/OvmfXen.dsc, but haven't
gotten it to do anything.  I'm suspecting the support for running
headless didn't get into OvmfXen.  I'm interacting with someone
knowledgeable, but nothing yet.

I suspect the "ovmf" package needs to be split.  I've gotten the
impression the build needed for normal `qemu` isn't going to be the same
as the build needed for xen-qemu.

I think what is really needed is for xen-utils-X.YY to Recommend a
virtual package "xen-domu-bootloader" which is then provided by tools
which can load VMs.  The current other in-service tool is grub-xen-host,
but it appears OvmfXen may also be able to provide the service.

I'm attaching two patches which should help organize the source package.
These leave all the "./edksetup.sh" lines identical.  Perhaps make use
of this to make the build cleaner?


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sig...@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445


>From 910f6592733dbef2166ceb469320b8e21c4fa977 Mon Sep 17 00:00:00 2001
Message-Id: <910f6592733dbef2166ceb469320b8e21c4fa977.1692832840.git.ehem+deb...@m5p.com>
From: Elliott Mitchell <ehem+deb...@m5p.com>
Date: Wed, 20 Jan 2021 17:40:15 -0800
Subject: [PATCH 1/2] debian/rules: Rework edksetup.sh invocations

Instead of using "set -e", instead overtly test return codes using
a conditional.  Move commonly used build flags to front of command as a
precursor to merging into a macro.  This also makes the varying flags
more overt by being on the end.
---
 debian/rules | 45 +++++++++++++++++++--------------------------
 1 file changed, 19 insertions(+), 26 deletions(-)

diff --git a/debian/rules b/debian/rules
index 116c9c74b7..36b1ffc045 100755
--- a/debian/rules
+++ b/debian/rules
@@ -59,8 +59,7 @@ undefine CONF_PATH
 override_dh_auto_build: build-qemu-efi-aarch64 build-qemu-efi-arm build-ovmf build-ovmf32
 
 debian/setup-build-stamp:
-	set -e; . ./edksetup.sh; \
-	make -C BaseTools ARCH=$(EDK2_BUILD_ARCH)
+	. ./edksetup.sh && make -C BaseTools ARCH=$(EDK2_BUILD_ARCH)
 	touch $@
 
 OVMF_INSTALL_DIR = debian/ovmf-install
@@ -95,11 +94,10 @@ build-ovmf32: $(OVMF32_BINARIES) $(OVMF32_IMAGES)
 $(OVMF32_BINARIES) $(OVMF32_IMAGES): debian/setup-build-stamp
 	rm -rf $(OVMF32_INSTALL_DIR)
 	mkdir $(OVMF32_INSTALL_DIR)
-	set -e; . ./edksetup.sh; \
-		build -a IA32 \
-			-t $(EDK2_TOOLCHAIN) \
+	. ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \
+			-a IA32 \
 			-p OvmfPkg/OvmfPkgIa32.dsc \
-			$(OVMF32_4M_SMM_FLAGS) -b $(BUILD_TYPE)
+			$(OVMF32_4M_SMM_FLAGS)
 	cp $(OVMF32_BUILD_DIR)/FV/OVMF_CODE.fd \
 		$(OVMF32_INSTALL_DIR)/OVMF32_CODE_4M.secboot.fd
 	cp $(OVMF32_BUILD_DIR)/FV/OVMF_VARS.fd \
@@ -109,38 +107,34 @@ build-ovmf: $(OVMF_BINARIES) $(OVMF_IMAGES) $(OVMF_PREENROLLED_VARS)
 $(OVMF_BINARIES) $(OVMF_IMAGES): debian/setup-build-stamp
 	rm -rf $(OVMF_INSTALL_DIR)
 	mkdir $(OVMF_INSTALL_DIR)
-	set -e; . ./edksetup.sh; \
-		build -a X64 \
-			-t $(EDK2_TOOLCHAIN) \
+	. ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \
+			-a X64 \
 			-p OvmfPkg/OvmfPkgX64.dsc \
-			$(OVMF_2M_FLAGS) -b $(BUILD_TYPE)
+			$(OVMF_2M_FLAGS)
 	cp $(OVMF_BUILD_DIR)/FV/OVMF_CODE.fd \
 		$(OVMF_BUILD_DIR)/FV/OVMF.fd $(OVMF_INSTALL_DIR)/
 	cp $(OVMF_BUILD_DIR)/FV/OVMF_VARS.fd $(OVMF_INSTALL_DIR)/
 	rm -rf Build/OvmfX64
-	set -e; . ./edksetup.sh; \
-		build -a IA32 -a X64 \
-			-t $(EDK2_TOOLCHAIN) \
+	. ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \
+			-a IA32 -a X64 \
 			-p OvmfPkg/OvmfPkgIa32X64.dsc \
-			$(OVMF_4M_FLAGS) -b $(BUILD_TYPE)
+			$(OVMF_4M_FLAGS)
 	cp $(OVMF3264_BUILD_DIR)/FV/OVMF_CODE.fd \
 		$(OVMF_INSTALL_DIR)/OVMF_CODE_4M.fd
 	cp $(OVMF3264_BUILD_DIR)/FV/OVMF_VARS.fd \
 		$(OVMF_INSTALL_DIR)/OVMF_VARS_4M.fd
 	rm -rf Build/OvmfX64
-	set -e; . ./edksetup.sh; \
-		build -a X64 \
-			-t $(EDK2_TOOLCHAIN) \
+	. ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \
+			-a X64 \
 			-p OvmfPkg/OvmfPkgX64.dsc \
-			$(OVMF_2M_SMM_FLAGS) -b $(BUILD_TYPE)
+			$(OVMF_2M_SMM_FLAGS)
 	cp $(OVMF_BUILD_DIR)/FV/OVMF_CODE.fd \
 		$(OVMF_INSTALL_DIR)/OVMF_CODE.secboot.fd
 	rm -rf Build/OvmfX64
-	set -e; . ./edksetup.sh; \
-		build -a IA32 -a X64 \
-			-t $(EDK2_TOOLCHAIN) \
+	. ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \
+			-a IA32 -a X64 \
 			-p OvmfPkg/OvmfPkgIa32X64.dsc \
-			$(OVMF_4M_SMM_FLAGS) -b $(BUILD_TYPE)
+			$(OVMF_4M_SMM_FLAGS)
 	cp $(OVMF3264_BUILD_DIR)/FV/OVMF_CODE.fd \
 		$(OVMF_INSTALL_DIR)/OVMF_CODE_4M.secboot.fd
 
@@ -202,11 +196,10 @@ ArmPkg/Library/GccLto/liblto-arm.a: ArmPkg/Library/GccLto/liblto-arm.s
 	$($(EDK2_TOOLCHAIN)_ARM_PREFIX)gcc -c -fpic $< -o $@
 
 build-qemu-efi: debian/setup-build-stamp
-	set -e; . ./edksetup.sh; \
-		build -a $(EDK2_HOST_ARCH) \
-			-t $(EDK2_TOOLCHAIN) \
+	. ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \
+			-a $(EDK2_HOST_ARCH) \
 			-p ArmVirtPkg/ArmVirtQemu.dsc \
-			$(AAVMF_FLAGS) -b $(BUILD_TYPE)
+			$(AAVMF_FLAGS)
 	cp $(QEMU_EFI_BUILD_DIR)/FV/QEMU_EFI.fd \
 		$(QEMU_EFI_BUILD_DIR)/FV/$(FW_NAME)_CODE.fd
 	cp $(QEMU_EFI_BUILD_DIR)/FV/QEMU_VARS.fd \
-- 
2.39.2

>From 138b98c26b0f28ebff3f19e918c36ea2d463bff8 Mon Sep 17 00:00:00 2001
Message-Id: <138b98c26b0f28ebff3f19e918c36ea2d463bff8.1692832840.git.ehem+deb...@m5p.com>
In-Reply-To: <910f6592733dbef2166ceb469320b8e21c4fa977.1692832840.git.ehem+deb...@m5p.com>
References: <910f6592733dbef2166ceb469320b8e21c4fa977.1692832840.git.ehem+deb...@m5p.com>
From: Elliott Mitchell <ehem+deb...@m5p.com>
Date: Thu, 21 Jan 2021 20:18:37 -0800
Subject: [PATCH 2/2] debian/rules: Make edkbuild verbose

Debian policy says the package build should be as verbose as reasonably
possible. Also this helps with debugging build issues.
---
 debian/rules | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/debian/rules b/debian/rules
index 36b1ffc045..0d4e0eec62 100755
--- a/debian/rules
+++ b/debian/rules
@@ -94,7 +94,7 @@ build-ovmf32: $(OVMF32_BINARIES) $(OVMF32_IMAGES)
 $(OVMF32_BINARIES) $(OVMF32_IMAGES): debian/setup-build-stamp
 	rm -rf $(OVMF32_INSTALL_DIR)
 	mkdir $(OVMF32_INSTALL_DIR)
-	. ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \
+	. ./edksetup.sh && V=1 build -v -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \
 			-a IA32 \
 			-p OvmfPkg/OvmfPkgIa32.dsc \
 			$(OVMF32_4M_SMM_FLAGS)
@@ -107,7 +107,7 @@ build-ovmf: $(OVMF_BINARIES) $(OVMF_IMAGES) $(OVMF_PREENROLLED_VARS)
 $(OVMF_BINARIES) $(OVMF_IMAGES): debian/setup-build-stamp
 	rm -rf $(OVMF_INSTALL_DIR)
 	mkdir $(OVMF_INSTALL_DIR)
-	. ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \
+	. ./edksetup.sh && V=1 build -v -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \
 			-a X64 \
 			-p OvmfPkg/OvmfPkgX64.dsc \
 			$(OVMF_2M_FLAGS)
@@ -115,7 +115,7 @@ $(OVMF_BINARIES) $(OVMF_IMAGES): debian/setup-build-stamp
 		$(OVMF_BUILD_DIR)/FV/OVMF.fd $(OVMF_INSTALL_DIR)/
 	cp $(OVMF_BUILD_DIR)/FV/OVMF_VARS.fd $(OVMF_INSTALL_DIR)/
 	rm -rf Build/OvmfX64
-	. ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \
+	. ./edksetup.sh && V=1 build -v -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \
 			-a IA32 -a X64 \
 			-p OvmfPkg/OvmfPkgIa32X64.dsc \
 			$(OVMF_4M_FLAGS)
@@ -124,14 +124,14 @@ $(OVMF_BINARIES) $(OVMF_IMAGES): debian/setup-build-stamp
 	cp $(OVMF3264_BUILD_DIR)/FV/OVMF_VARS.fd \
 		$(OVMF_INSTALL_DIR)/OVMF_VARS_4M.fd
 	rm -rf Build/OvmfX64
-	. ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \
+	. ./edksetup.sh && V=1 build -v -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \
 			-a X64 \
 			-p OvmfPkg/OvmfPkgX64.dsc \
 			$(OVMF_2M_SMM_FLAGS)
 	cp $(OVMF_BUILD_DIR)/FV/OVMF_CODE.fd \
 		$(OVMF_INSTALL_DIR)/OVMF_CODE.secboot.fd
 	rm -rf Build/OvmfX64
-	. ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \
+	. ./edksetup.sh && V=1 build -v -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \
 			-a IA32 -a X64 \
 			-p OvmfPkg/OvmfPkgIa32X64.dsc \
 			$(OVMF_4M_SMM_FLAGS)
@@ -196,7 +196,7 @@ ArmPkg/Library/GccLto/liblto-arm.a: ArmPkg/Library/GccLto/liblto-arm.s
 	$($(EDK2_TOOLCHAIN)_ARM_PREFIX)gcc -c -fpic $< -o $@
 
 build-qemu-efi: debian/setup-build-stamp
-	. ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \
+	. ./edksetup.sh && V=1 build -v -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \
 			-a $(EDK2_HOST_ARCH) \
 			-p ArmVirtPkg/ArmVirtQemu.dsc \
 			$(AAVMF_FLAGS)
-- 
2.39.2

Reply via email to