Commit 2e6a6ccd authored by Rebecca Cran's avatar Rebecca Cran
Browse files

sysutils/edk2: Add bhyve as a new FLAVOR of edk2

Instead of having a separate sysutils/uefi-edk2-bhyve port, add bhyve
as a FLAVOR of sysutils/edk2 and delete sysutils/uefi-edk2-bhyve.

To support existing users who depend on firmware in
/usr/local/share/uefi-firmware create compatibility symlinks.

Update sysutils/bhyve-firmware to depend on edk2@bhyve.

Differential Revision: https://reviews.freebsd.org/D35148
Reviewed by: manu
Approved by: manu
parent 7697411b
Loading
Loading
Loading
Loading
+1 −0
Changes for MOVED: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -17177,4 +17177,5 @@ java/openjdk13||2022-05-24|Has expired: EOLed since 31 march 2020
java/openjdk14||2022-05-24|Has expired: EOLed since 30 september 2020
java/openjdk15||2022-05-24|Has expired: EOLed since 31 march 2021
java/openjdk16||2022-05-24|Has expired: EOLed since 30 September 2021
sysutils/uefi-edk2-bhyve||2022-05-24|No more need for this port: please use sysutils/edk2 FLAVOR bhyve instead
archivers/p7zip|archivers/7-zip|2022-05-25|Unmaintained for years and has known vulnerabilities. Use 7-Zip instead
+1 −1
Changes for sysutils/bhyve-firmware/Makefile: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ CATEGORIES= sysutils
MAINTAINER=	fabian.freyer@physik.tu-berlin.de
COMMENT=	Collection of Firmware for bhyve

RUN_DEPENDS=	uefi-edk2-bhyve>=0:sysutils/uefi-edk2-bhyve
RUN_DEPENDS=	${LOCALBASE}/share/uefi-firmware/BHYVE_UEFI_CODE.fd:sysutils/edk2@bhyve

USES=			metaport
OPTIONS_DEFINE=		CSM
+40 −1
Changes for sysutils/edk2/Makefile: 40 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@ ONLY_FOR_ARCHS= aarch64 amd64
ONLY_FOR_ARCHS_REASON=	only provides firmware for aarch64 and amd64

PKGNAMESUFFIX=	-${FLAVOR:C/_/-/g}
FLAVORS=	macchiatobin fvp rpi3 rpi4 xen_x64
FLAVORS=	macchiatobin fvp rpi3 rpi4 xen_x64 bhyve

USES=	cpe gmake python:3.7+,build
CPE_VENDOR=	tianocore
@@ -95,7 +95,33 @@ PLAT_RESULT= OvmfXen/${PLAT_TARGET}_GCC5/FV/OVMF.fd
PLAT_FILENAME=	XEN_X64_EFI.fd
.endif

.if ${FLAVOR} == bhyve
ONLY_FOR_ARCHS=	amd64
ONLY_FOR_ARCHS_REASON= Bhyve only runs on x64
PLAT=		bhyve
PLAT_ARCH=	X64
PLAT_TARGET=	RELEASE
PLATFILE=	OvmfPkg/Bhyve/BhyveX64.dsc
PLAT_RESULT=	BhyveX64/${PLAT_TARGET}_GCC5/FV/BHYVE.fd
PLAT_RESULT_CODE=	BhyveX64/${PLAT_TARGET}_GCC5/FV/BHYVE_CODE.fd
PLAT_RESULT_VARS=	BhyveX64/${PLAT_TARGET}_GCC5/FV/BHYVE_VARS.fd
PLAT_FILENAME=	BHYVE_UEFI.fd
PLAT_FILENAME_CODE	= BHYVE_UEFI_CODE.fd
PLAT_FILENAME_VARS	= BHYVE_UEFI_VARS.fd
.endif

PLIST_FILES=	${PREFIX}/share/${PORTNAME}-${PLAT}/${PLAT_FILENAME}
.if defined(PLAT_FILENAME_CODE)
PLIST_FILES+=	${PREFIX}/share/${PORTNAME}-${PLAT}/${PLAT_FILENAME_CODE}
.endif
.if defined(PLAT_FILENAME_VARS)
PLIST_FILES+=	${PREFIX}/share/${PORTNAME}-${PLAT}/${PLAT_FILENAME_VARS}
.endif
.if ${FLAVOR} == bhyve
PLIST_FILES+=	${PREFIX}/share/uefi-firmware/${PLAT_FILENAME}
PLIST_FILES+=	${PREFIX}/share/uefi-firmware/${PLAT_FILENAME_CODE}
PLIST_FILES+=	${PREFIX}/share/uefi-firmware/${PLAT_FILENAME_VARS}
.endif

# Emulate source edk2/edksetup.sh
MAKE_ENV+=	WORKSPACE=${WRKDIR} \
@@ -132,5 +158,18 @@ do-build:
do-install:
	${MKDIR} ${STAGEDIR}/${PREFIX}/share/${PORTNAME}-${PLAT}/
	${INSTALL_DATA} ${WRKDIR}/Build/${PLAT_RESULT} ${STAGEDIR}/${PREFIX}/share/${PORTNAME}-${PLAT}/${PLAT_FILENAME}
.if defined(PLAT_FILENAME_CODE)
	${INSTALL_DATA} ${WRKDIR}/Build/${PLAT_RESULT_CODE} ${STAGEDIR}/${PREFIX}/share/${PORTNAME}-${PLAT}/${PLAT_FILENAME_CODE}
.endif
.if defined(PLAT_FILENAME_VARS)
	${INSTALL_DATA} ${WRKDIR}/Build/${PLAT_RESULT_VARS} ${STAGEDIR}/${PREFIX}/share/${PORTNAME}-${PLAT}/${PLAT_FILENAME_VARS}
.endif
.if ${FLAVOR} == bhyve
	# For backwards compatibility
	${MKDIR} ${STAGEDIR}/${PREFIX}/share/uefi-firmware/
	${RLN} ${STAGEDIR}/${PREFIX}/share/${PORTNAME}-${PLAT}/${PLAT_FILENAME} ${STAGEDIR}/${PREFIX}/share/uefi-firmware/${PLAT_FILENAME}
	${RLN} ${STAGEDIR}/${PREFIX}/share/${PORTNAME}-${PLAT}/${PLAT_FILENAME_CODE} ${STAGEDIR}/${PREFIX}/share/uefi-firmware/${PLAT_FILENAME_CODE}
	${RLN} ${STAGEDIR}/${PREFIX}/share/${PORTNAME}-${PLAT}/${PLAT_FILENAME_VARS} ${STAGEDIR}/${PREFIX}/share/uefi-firmware/${PLAT_FILENAME_VARS}
.endif

.include <bsd.port.post.mk>

sysutils/uefi-edk2-bhyve/Makefile

deleted100644 → 0
+0 −92
Changes for sysutils/uefi-edk2-bhyve/Makefile: 0 added lines, 92 removed lines.
Original line number Diff line number Diff line
PORTNAME=	uefi-edk2-bhyve
PORTVERSION=	g20210226
PORTREVISION=	1
PORTEPOCH=	2
CATEGORIES=	sysutils

MAINTAINER=	bcran@FreeBSD.org
COMMENT=	UEFI EDK2 firmware for bhyve

LICENSE=	BSD2CLAUSE+PATENT
LICENSE_GROUPS=	FSF OSI COPYFREE
LICENSE_NAME=	BSD-2-Clause Plus Patent License
LICENSE_FILE=	${WRKSRC}/License.txt
LICENSE_PERMS=	dist-mirror dist-sell pkg-mirror pkg-sell auto-accept

ONLY_FOR_ARCHS=	amd64
ONLY_FOR_ARCHS_REASON=	bhyve firmware has only been ported to X64

BUILD_DEPENDS=	nasm:devel/nasm \
		bash:shells/bash

USES=		gmake \
		python:3.7+,build
USE_GCC=	yes:build
USE_GITHUB=	yes
GH_ACCOUNT=	tianocore
GH_PROJECT=	edk2
GH_TAGNAME=	edk2-stable202102
GH_TUPLE=	ucb-bar:berkeley-softfloat-3:master:softfloat/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 \
		google:brotli:v1.0.7-17-g666c328:brotli/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli \
		openssl:openssl:OpenSSL_1_1_1g:openssl/CryptoPkg/Library/OpensslLib/openssl \
		kkos:oniguruma:v6.9.4_mark1:oniguruma/MdeModulePkg/Universal/RegularExpressionDxe/oniguruma \
		akheron:jansson:v2.13.1:jansson/RedfishPkg/Library/JsonLib/jansson \

BINARY_ALIAS=	make=${LOCALBASE}/bin/gmake \
		gcc=${LOCALBASE}/bin/gcc${GCC_DEFAULT} \
		gcc-ar=${LOCALBASE}/bin/gcc-ar${GCC_DEFAULT} \
		g++=${LOCALBASE}/bin/g++${GCC_DEFAULT} \
		python3=${PYTHON_CMD} python=${PYTHON_CMD}

PLAT_ARCH=	X64
PLAT_FILE=	OvmfPkg/Bhyve/BhyveX64.dsc
PLAT_RESULT=	BhyveX64/${PLAT_TARGET}_GCC5/FV/BHYVE.fd
PLAT_RESULT_CODE=	BhyveX64/${PLAT_TARGET}_GCC5/FV/BHYVE_CODE.fd
PLAT_RESULT_VARS=	BhyveX64/${PLAT_TARGET}_GCC5/FV/BHYVE_VARS.fd

PLIST_FILES=	${PREFIX}/share/uefi-firmware/BHYVE_UEFI.fd      \
		${PREFIX}/share/uefi-firmware/BHYVE_UEFI_CODE.fd \
		${PREFIX}/share/uefi-firmware/BHYVE_UEFI_VARS.fd

OPTIONS_DEFINE=	DEBUG HTTP_BOOT
OPTIONS_DEFAULT=	HTTP_BOOT

DEBUG_DESC=	Build a debug configuration
HTTP_BOOT_DESC=	Build with HTTP(S) boot support

DEBUG_VARS=	PLAT_TARGET=DEBUG
DEBUG_VARS_OFF=	PLAT_TARGET=RELEASE
HTTP_BOOT_VARS=	PLAT_ARGS+=-DNETWORK_HTTP_BOOT_ENABLE=TRUE

PLAT_ARGS+=	-DDEBUG_ON_SERIAL_PORT=TRUE

# Emulate source edk2/edksetup.sh
MAKE_ENV+=	WORKSPACE=${WRKDIR} \
		PACKAGES_PATH=${WRKDIR}/edk2-${GH_TAGNAME} \
		CONF_PATH=${WRKDIR}/edk2-${GH_TAGNAME}/Conf \
		EDK_TOOLS_PATH=${WRKDIR}/edk2-${GH_TAGNAME}/BaseTools \
		PATH=${WRKDIR}/edk2-${GH_TAGNAME}/BaseTools/BinWrappers/PosixLike:${PATH} \
		PYTHON_COMMAND=python3 \
		PYTHONHASHSEED=1

# We can't have two submodule with the same origin in GH_TUPLE
post-extract:
	(cd ${WRKDIR}/edk2-${GH_TAGNAME}/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli && tar cf - * | tar xf - -C ../../../../BaseTools/Source/C/BrotliCompress/brotli)

do-build:
	# This is normaly done during source edksetup.sh
	(cp ${WRKDIR}/edk2-${GH_TAGNAME}/BaseTools/Conf/build_rule.template ${WRKDIR}/edk2-${GH_TAGNAME}/Conf/build_rule.txt)
	(cp ${WRKDIR}/edk2-${GH_TAGNAME}/BaseTools/Conf/tools_def.template ${WRKDIR}/edk2-${GH_TAGNAME}/Conf/tools_def.txt)
	(cp ${WRKDIR}/edk2-${GH_TAGNAME}/BaseTools/Conf/target.template ${WRKDIR}/edk2-${GH_TAGNAME}/Conf/target.txt)
	# Build the basetools
	(cd ${WRKDIR} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} -C edk2-${GH_TAGNAME}/BaseTools -j ${MAKE_JOBS_NUMBER} ${_MAKE_JOBS})
	# Build EDK2
	(cd ${WRKDIR}/edk2-${GH_TAGNAME} && ${SETENV} ${MAKE_ENV} BaseTools/BinWrappers/PosixLike/build -a ${PLAT_ARCH} -p ${PLAT_FILE} -n ${MAKE_JOBS_NUMBER} -t GCC5 -b ${PLAT_TARGET} ${PLAT_ARGS})

do-install:
	${MKDIR} ${STAGEDIR}/${PREFIX}/share/uefi-firmware/
	${INSTALL_DATA} ${WRKDIR}/Build/${PLAT_RESULT_CODE} ${STAGEDIR}/${PREFIX}/share/uefi-firmware/BHYVE_UEFI.fd
	${INSTALL_DATA} ${WRKDIR}/Build/${PLAT_RESULT_CODE} ${STAGEDIR}/${PREFIX}/share/uefi-firmware/BHYVE_UEFI_CODE.fd
	${INSTALL_DATA} ${WRKDIR}/Build/${PLAT_RESULT_VARS} ${STAGEDIR}/${PREFIX}/share/uefi-firmware/BHYVE_UEFI_VARS.fd

.include <bsd.port.mk>

sysutils/uefi-edk2-bhyve/distinfo

deleted100644 → 0
+0 −13
Changes for sysutils/uefi-edk2-bhyve/distinfo: 0 added lines, 13 removed lines.
Original line number Diff line number Diff line
TIMESTAMP = 1619914029
SHA256 (tianocore-edk2-g20210226-edk2-stable202102_GH0.tar.gz) = 268591f0db8fd1f8c977509e8ac37bd6090c8373bf63a9657c88bb27bb43a279
SIZE (tianocore-edk2-g20210226-edk2-stable202102_GH0.tar.gz) = 13604550
SHA256 (ucb-bar-berkeley-softfloat-3-master_GH0.tar.gz) = a40ccfa8d5c04971e6af8014217c93b58fba4d08c337bc0436bb141e9e79426a
SIZE (ucb-bar-berkeley-softfloat-3-master_GH0.tar.gz) = 148747
SHA256 (google-brotli-v1.0.7-17-g666c328_GH0.tar.gz) = caed254751585590b20b4a34d6600e9c9aae153ab1f9e1ae6b67f9bc3ee09b92
SIZE (google-brotli-v1.0.7-17-g666c328_GH0.tar.gz) = 23854268
SHA256 (openssl-openssl-OpenSSL_1_1_1g_GH0.tar.gz) = 281e4f13142b53657bd154481e18195b2d477572fdffa8ed1065f73ef5a19777
SIZE (openssl-openssl-OpenSSL_1_1_1g_GH0.tar.gz) = 9975550
SHA256 (kkos-oniguruma-v6.9.4_mark1_GH0.tar.gz) = 7f7576c926f7d4a071d594a01691c477bbb9391df250378bd5e1c003d42b4318
SIZE (kkos-oniguruma-v6.9.4_mark1_GH0.tar.gz) = 592141
SHA256 (akheron-jansson-v2.13.1_GH0.tar.gz) = f22901582138e3203959c9257cf83eba9929ac41d7be4a42557213a22ebcc7a0
SIZE (akheron-jansson-v2.13.1_GH0.tar.gz) = 144979
Loading