aboutsummaryrefslogtreecommitdiff
path: root/sysutils/uefi-edk2-bhyve
diff options
context:
space:
mode:
authorRebecca Cran <bcran@FreeBSD.org>2021-02-18 02:57:01 +0000
committerRebecca Cran <bcran@FreeBSD.org>2021-02-18 02:57:01 +0000
commitf9711df914fd6f70621a1049c40663ddf8b7a64b (patch)
tree89dfa83ddafe210ee79f63dd0be37aec4c69b305 /sysutils/uefi-edk2-bhyve
parent7415c8261c9b51ddc2a2f76f7311e0d80e8af200 (diff)
downloadports-f9711df914fd6f70621a1049c40663ddf8b7a64b.tar.gz
ports-f9711df914fd6f70621a1049c40663ddf8b7a64b.zip
sysutils/uefi-edk2-bhyve*: Update and migrate to Python 3
o remove dependency on the now obsolete Python 2.7. o sysutils/uefi-edk2-bhyve now uses the GH/tianocore/edk2 upstream repo. Use commit 2e1e8c35f3178df95d79da81ac6deec242da74c2 from master on 2021-02-14. o sysutils/uefi-edk2-bhyve-csm is no longer a slave port, since it continues to use the GH/freebsd/uefi-edk2 repo. o sysutils/uefi-edk2-bhyve-devel is no longer required, so delete it. o Update the port Makefiles to follow the style in sysutils/edk2. Reviewed by: grehan Approved by: woodsb02 Differential Revision: https://reviews.freebsd.org/D27230
Notes
Notes: svn path=/head/; revision=565866
Diffstat (limited to 'sysutils/uefi-edk2-bhyve')
-rw-r--r--sysutils/uefi-edk2-bhyve/Makefile140
-rw-r--r--sysutils/uefi-edk2-bhyve/distinfo16
-rw-r--r--sysutils/uefi-edk2-bhyve/pkg-descr18
3 files changed, 103 insertions, 71 deletions
diff --git a/sysutils/uefi-edk2-bhyve/Makefile b/sysutils/uefi-edk2-bhyve/Makefile
index 69b988105b83..47f8fd0de30d 100644
--- a/sysutils/uefi-edk2-bhyve/Makefile
+++ b/sysutils/uefi-edk2-bhyve/Makefile
@@ -1,85 +1,93 @@
# $FreeBSD$
PORTNAME= uefi-edk2-bhyve
-DISTVERSIONPREFIX= v
-DISTVERSION= 0.2
-PORTREVISION= 1
-PORTEPOCH= 1
+PORTVERSION= g20210214
+PORTEPOCH= 2
CATEGORIES= sysutils
-MAINTAINER= ports@FreeBSD.org
-COMMENT?= UEFI-EDK2 firmware for bhyve
+MAINTAINER= bcran@FreeBSD.org
+COMMENT= UEFI EDK2 firmware for bhyve
-LICENSE= BSD2CLAUSE
+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= bash:shells/bash \
- nasm:devel/nasm \
- ${PYTHON_LIBDIR}/lib-dynload/_sqlite3.so:databases/py-sqlite3@${PY_FLAVOR}
+BUILD_DEPENDS= nasm:devel/nasm \
+ bash:shells/bash
USES= gmake \
- python:2.7,build
-USE_GCC= 4.8:build
+ python:3.7+,build
+USE_GCC= yes:build
USE_GITHUB= yes
-GH_ACCOUNT= freebsd
-GH_PROJECT= uefi-edk2
-GH_TAGNAME= aa8d718
-
-PLIST_FILES= ${PREFIX}/share/uefi-firmware/BHYVE_UEFI${PLIST_SUFFIX}.fd
-
-OPTIONS_DEFINE= DEBUG
-
-DEBUG_VARS= uefi_target=DEBUG
-DEBUG_VARS_OFF= uefi_target=RELEASE
-
-MAKE_ARGS+= AS=${LOCALBASE}/bin/as \
- AR=${LOCALBASE}/bin/ar \
- LD=${LOCALBASE}/bin/ld \
- OBJCOPY=${LOCALBASE}/bin/objcopy \
- CC=${LOCALBASE}/bin/gcc48 \
- CXX=${LOCALBASE}/bin/g++48
-
-BUILD_ARGS=-DDEBUG_ON_SERIAL_PORT=TRUE -D FD_SIZE_2MB
-
-.include <bsd.port.options.mk>
-
-.if defined(WITH_CSM)
-PLIST_SUFFIX= _CSM
-BUILD_ARGS+= -DCSM_ENABLE=TRUE
-.endif
-
+GH_ACCOUNT= tianocore
+GH_PROJECT= edk2
+GH_TAGNAME= 2e1e8c35f3178df95d79da81ac6deec242da74c2
+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+=-DHTTP_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:
- @${REINPLACE_CMD} -e 's|python|${PYTHON_CMD}|' ${WRKSRC}/BaseTools/Tests/GNUmakefile \
- ${WRKSRC}/BaseTools/BinWrappers/PosixLike/*
+ (cd ${WRKDIR}/edk2-${GH_TAGNAME}/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli && tar cf - * | tar xf - -C ../../../../BaseTools/Source/C/BrotliCompress/brotli)
do-build:
- unset ARCH; unset MAKEFLAGS; ${MAKE_CMD} ${MAKE_ARGS} -C ${BUILD_WRKSRC}/BaseTools
- ${MKDIR} ${BUILD_WRKSRC}/Build;
- ${LN} -sf ${LOCALBASE}/bin/gcc48 ${BUILD_WRKSRC}/Build/gcc
- ${LN} -sf ${LOCALBASE}/bin/ld ${BUILD_WRKSRC}/Build/ld
- ${LN} -sf ${LOCALBASE}/bin/gmake ${BUILD_WRKSRC}/Build/make
- ${LN} -sf ${LOCALBASE}/bin/ar ${BUILD_WRKSRC}/Build/ar
- ${LN} -sf ${LOCALBASE}/bin/objcopy ${BUILD_WRKSRC}/Build/objcopy
- ${LN} -sf ${LOCALBASE}/bin/nasm ${BUILD_WRKSRC}/Build/nasm
-.if defined(WITH_CSM)
- bash -c " \
- cd ${BUILD_WRKSRC}; \
- source edksetup.sh;\
- unset ARCH; unset MAKEFLAGS; \
- ${MAKE_CMD} ${MAKE_ARGS} GCC48_BIN=${BUILD_WRKSRC}/Build/ -C ${BUILD_WRKSRC}/BhyvePkg/Csm/BhyveCsm16/"
-.endif
- bash -c " \
- cd ${BUILD_WRKSRC}; \
- source edksetup.sh;\
- unset ARCH; unset MAKEFLAGS; \
- export GCC48_BIN=${BUILD_WRKSRC}/Build/; \
- build -t GCC48 -a X64 -b ${UEFI_TARGET} -p BhyvePkg/BhyvePkgX64.dsc ${BUILD_ARGS} \
- "
+ # 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} ${BUILD_WRKSRC}/Build/BhyveX64/${UEFI_TARGET}_GCC48/FV/BHYVE.fd \
- ${STAGEDIR}${PREFIX}/share/uefi-firmware/BHYVE_UEFI${PLIST_SUFFIX}.fd
+ ${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>
diff --git a/sysutils/uefi-edk2-bhyve/distinfo b/sysutils/uefi-edk2-bhyve/distinfo
index d67d01eb4775..0b0fb659ff23 100644
--- a/sysutils/uefi-edk2-bhyve/distinfo
+++ b/sysutils/uefi-edk2-bhyve/distinfo
@@ -1,3 +1,13 @@
-TIMESTAMP = 1548651484
-SHA256 (freebsd-uefi-edk2-v0.2-aa8d718_GH0.tar.gz) = 749ef1ec3fdb37434745a7ecf7f3d41e6c84aeb906d52e5f8ce85527a06a472e
-SIZE (freebsd-uefi-edk2-v0.2-aa8d718_GH0.tar.gz) = 30986800
+TIMESTAMP = 1613349864
+SHA256 (tianocore-edk2-g20210214-2e1e8c35f3178df95d79da81ac6deec242da74c2_GH0.tar.gz) = d611fece6f4b0cd7dad24af490524fadb4c560e7bbce7028002f69ce2102f247
+SIZE (tianocore-edk2-g20210214-2e1e8c35f3178df95d79da81ac6deec242da74c2_GH0.tar.gz) = 13615777
+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
diff --git a/sysutils/uefi-edk2-bhyve/pkg-descr b/sysutils/uefi-edk2-bhyve/pkg-descr
index 394679a13c10..1ad80c379e33 100644
--- a/sysutils/uefi-edk2-bhyve/pkg-descr
+++ b/sysutils/uefi-edk2-bhyve/pkg-descr
@@ -1,3 +1,17 @@
-UEFI-EDK2 firmware for bhyve.
+UEFI EDK2 firmware for bhyve.
-WWW: https://github.com/freebsd/uefi-edk2/tree/bhyve/UDK2014.SP1
+From https://github.com/tianocore/tianocore/wiki/UEFI :
+"The Unified Extensible Firmware Interface, or UEFI, specifies the
+firmware layer between an operating system and platform hardware. UEFI
+replaces the legacy Basic Input Output System (BIOS)."
+
+EDK2 is the project from TianoCore (https://tianocore.org) that provides
+"a modern, feature-rich, cross-platform development environment for the
+UEFI and UEFI Platform Initialization (PI) specifications."
+
+It's open source under the BSD-2-Clause-Patent license.
+
+This port provides a version of EDK2 for use with VMs running
+operating systems which have UEFI support.
+
+WWW: https://github.com/tianocore/edk2/tree/master/OvmfPkg/Bhyve