Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Aug 2020 17:31:53 +0000 (UTC)
From:      Emmanuel Vadot <manu@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r544569 - in head/sysutils: . edk2
Message-ID:  <202008091731.079HVrm2066349@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: manu
Date: Sun Aug  9 17:31:52 2020
New Revision: 544569
URL: https://svnweb.freebsd.org/changeset/ports/544569

Log:
  sysutils/edk2: Add new port
  
  EDK2 is a modern, feature-rich, cross-platform firmware development
  environment for the UEFI and PI specifications from www.uefi.org.
  
  The port currently support 3 flavors: macchiatobin, rpi3 and rpi4.

Added:
  head/sysutils/edk2/
  head/sysutils/edk2/Makefile   (contents, props changed)
  head/sysutils/edk2/distinfo   (contents, props changed)
  head/sysutils/edk2/pkg-descr   (contents, props changed)
Modified:
  head/sysutils/Makefile

Modified: head/sysutils/Makefile
==============================================================================
--- head/sysutils/Makefile	Sun Aug  9 16:41:04 2020	(r544568)
+++ head/sysutils/Makefile	Sun Aug  9 17:31:52 2020	(r544569)
@@ -294,6 +294,7 @@
     SUBDIR += ec2-scripts
     SUBDIR += eclat
     SUBDIR += edid-decode
+    SUBDIR += edk2
     SUBDIR += eject
     SUBDIR += eksctl
     SUBDIR += endian

Added: head/sysutils/edk2/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/edk2/Makefile	Sun Aug  9 17:31:52 2020	(r544569)
@@ -0,0 +1,106 @@
+# $FreeBSD$
+
+PORTNAME=	edk2
+PORTVERSION=	g202005
+CATEGORIES=	sysutils
+
+MAINTAINER=	manu@FreeBSD.org
+COMMENT=	EDK2 Firmware for ${FLAVOR}
+
+LICENSE=	BSD3CLAUSE
+
+PKGNAMESUFFIX=	-${FLAVOR:C/_/-/g}
+FLAVORS=	macchiatobin rpi3 rpi4
+FLAVOR?=	macchiatobin
+
+USES=	gmake python:3.7+,build
+
+BUILD_DEPENDS+=	aarch64-none-elf-gcc:devel/aarch64-none-elf-gcc \
+		gcc8:lang/gcc8 \
+		dtc>=1.4.1:sysutils/dtc \
+		bash:shells/bash
+
+# Both platform and non-osi repository don't have release, use latest known to work tag
+PLATFORM_TAG=	b716f363
+NONOSI_TAG=	f8023973
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	tianocore
+GH_TAGNAME=	edk2-stable202005
+GH_TUPLE=	tianocore:edk2-platforms:${PLATFORM_TAG}:platforms \
+		tianocore:edk2-non-osi:${NONOSI_TAG}:nonosi \
+		openssl:openssl:OpenSSL_1_1_1d-2-gc3656cc594:openssl/CryptoPkg/Library/OpensslLib/openssl \
+		ucb-bar:berkeley-softfloat-3:master:softfloat/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 \
+		kkos:oniguruma:v6.9.4_mark1:oniguruma/MdeModulePkg/Universal/RegularExpressionDxe/oniguruma \
+		google:brotli:v1.0.7-17-g666c328:brotli/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli
+
+BINARY_ALIAS=	make=${LOCALBASE}/bin/gmake \
+		dtc=${LOCALBASE}/bin/dtc \
+		gcc=${LOCALBASE}/bin/gcc8 \
+		g++=${LOCALBASE}/bin/g++8 \
+		python3=${PYTHON_CMD} python=${PYTHON_CMD}
+
+.if ${FLAVOR} == macchiatobin
+PLAT=		macchiatobin
+PLAT_ARCH=	AARCH64
+PLAT_ARGS=	-D X64EMU_ENABLE=TRUE -D CAPSULE_ENABLE=FALSE
+PLAT_TARGET=	RELEASE
+PLATFILE=	Platform/SolidRun/Armada80x0McBin/Armada80x0McBin.dsc
+PLAT_RESULT=	Armada80x0McBin-AARCH64/${PLAT_TARGET}_GCC5/FV/ARMADA_EFI.fd
+PLAT_FILENAME=	ARMADA_EFI.fd
+.endif
+
+.if ${FLAVOR} == rpi3
+PLAT=		rpi3
+PLAT_ARCH=	AARCH64
+PLAT_ARGS=	-D X64EMU_ENABLE=FALSE -D CAPSULE_ENABLE=FALSE
+PLAT_TARGET=	RELEASE
+PLATFILE=	Platform/RaspberryPi/RPi3/RPi3.dsc
+PLAT_RESULT=	RPi3/${PLAT_TARGET}_GCC5/FV/RPI_EFI.fd
+PLAT_FILENAME=	RPI_EFI.fd
+.endif
+
+.if ${FLAVOR} == rpi4
+PLAT=		rpi4
+PLAT_ARCH=	AARCH64
+PLAT_ARGS=	-D X64EMU_ENABLE=FALSE -D CAPSULE_ENABLE=FALSE
+PLAT_TARGET=	RELEASE
+PLATFILE=	Platform/RaspberryPi/RPi4/RPi4.dsc
+PLAT_RESULT=	RPi4/${PLAT_TARGET}_GCC5/FV/RPI_EFI.fd
+PLAT_FILENAME=	RPI_EFI.fd
+.endif
+
+PLIST_FILES=	${PREFIX}/share/${PORTNAME}-${PLAT}/${PLAT_FILENAME}
+
+# Emulate source edk2/edksetup.sh
+MAKE_ENV+=	WORKSPACE=${WRKDIR} \
+		PACKAGES_PATH=${WRKDIR}/edk2-${GH_TAGNAME}:${WRKDIR}/edk2-platforms-${PLATFORM_TAG}:${WRKDIR}/edk2-non-osi-${NONOSI_TAG} \
+		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
+
+.if ${PLAT_ARCH} == AARCH64
+MAKE_ENV+=	GCC5_AARCH64_PREFIX=aarch64-none-elf-
+.endif
+
+# 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 ${_MAKE_JOBS})
+	# Build EDK2
+	(cd ${WRKDIR}/edk2-${GH_TAGNAME} && ${SETENV} ${MAKE_ENV} BaseTools/BinWrappers/PosixLike/build -a ${PLAT_ARCH} -p ${PLATFILE} -n ${MAKE_JOBS_NUMBER} -t GCC5 -b ${PLAT_TARGET} ${PLAT_ARGS})
+
+do-install:
+	${MKDIR} ${STAGEDIR}/${PREFIX}/share/${PORTNAME}-${PLAT}/
+	${INSTALL_DATA} ${WRKDIR}/Build/${PLAT_RESULT} ${STAGEDIR}/${PREFIX}/share/${PORTNAME}-${PLAT}/
+
+.include <bsd.port.mk>

Added: head/sysutils/edk2/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/edk2/distinfo	Sun Aug  9 17:31:52 2020	(r544569)
@@ -0,0 +1,15 @@
+TIMESTAMP = 1596904500
+SHA256 (tianocore-edk2-g202005-edk2-stable202005_GH0.tar.gz) = 373c3eff3497316a48fcf4be8dcee227431cbce86dcd80a004950e992f0297e2
+SIZE (tianocore-edk2-g202005-edk2-stable202005_GH0.tar.gz) = 12721407
+SHA256 (tianocore-edk2-platforms-b716f363_GH0.tar.gz) = 22de162829ad0bd4be9e6d1eaa42b003d2449d44eff912998acfbaf82eeea1bc
+SIZE (tianocore-edk2-platforms-b716f363_GH0.tar.gz) = 7717885
+SHA256 (tianocore-edk2-non-osi-f8023973_GH0.tar.gz) = 36bf3a483350b91a98ed9b5b83210c29c9dce8ab8e5b0d106787e29810a9126a
+SIZE (tianocore-edk2-non-osi-f8023973_GH0.tar.gz) = 6903980
+SHA256 (openssl-openssl-OpenSSL_1_1_1d-2-gc3656cc594_GH0.tar.gz) = f5c33990f7319e50ede73a6689ebfbf2c63f42cca6833042d71c1c05e57bb40e
+SIZE (openssl-openssl-OpenSSL_1_1_1d-2-gc3656cc594_GH0.tar.gz) = 9017066
+SHA256 (ucb-bar-berkeley-softfloat-3-master_GH0.tar.gz) = a40ccfa8d5c04971e6af8014217c93b58fba4d08c337bc0436bb141e9e79426a
+SIZE (ucb-bar-berkeley-softfloat-3-master_GH0.tar.gz) = 148747
+SHA256 (kkos-oniguruma-v6.9.4_mark1_GH0.tar.gz) = 7f7576c926f7d4a071d594a01691c477bbb9391df250378bd5e1c003d42b4318
+SIZE (kkos-oniguruma-v6.9.4_mark1_GH0.tar.gz) = 592141
+SHA256 (google-brotli-v1.0.7-17-g666c328_GH0.tar.gz) = caed254751585590b20b4a34d6600e9c9aae153ab1f9e1ae6b67f9bc3ee09b92
+SIZE (google-brotli-v1.0.7-17-g666c328_GH0.tar.gz) = 23854268

Added: head/sysutils/edk2/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/edk2/pkg-descr	Sun Aug  9 17:31:52 2020	(r544569)
@@ -0,0 +1,4 @@
+EDK II Project
+
+A modern, feature-rich, cross-platform firmware development environment for the
+UEFI and PI specifications from www.uefi.org.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202008091731.079HVrm2066349>