# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit mount-boot toolchain-funcs DESCRIPTION="Performs a measured and verified boot using Intel Trusted Execution Technology" HOMEPAGE="https://sourceforge.net/projects/tboot/" SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" LICENSE="BSD" SLOT="0" KEYWORDS="-* ~amd64 ~x86" IUSE="custom-cflags selinux" # requires patching the kernel src RESTRICT="test" DEPEND="dev-libs/openssl:0=[-bindist(-)]" RDEPEND="${DEPEND} sys-boot/grub:2 selinux? ( sec-policy/selinux-tboot )" DOCS=( README.md COPYING CHANGELOG ) PATCHES=( "${FILESDIR}/${PN}-1.10.3-disable-Werror.patch" "${FILESDIR}/${PN}-1.10.3-disable-strip.patch" "${FILESDIR}/${PN}-1.10.3-dont-call-toolchain-directly.patch" "${FILESDIR}/${PN}-1.10.5-fix-pconf-element.patch" ) pkg_setup() { if tc-is-clang; then eerror "tboot is a freestanding application that uses gcc" eerror "extensions in fundemental ways, include VLAIS" eerror "(Variable Length Arrays in Structs) and will not" eerror "compile with clang witout upstream action" die "Cannot compile with clang. See bug #832020" fi } src_configure() { tc-export AS LD CC CPP AR RANLIB NM OBJCOPY OBJDUMP STRIP default } src_compile() { use custom-cflags && export TBOOT_CFLAGS=${CFLAGS} || unset CCASFLAGS CFLAGS CPPFLAGS LDFLAGS if use amd64; then export MAKEARGS="TARGET_ARCH=x86_64" else export MAKEARGS="TARGET_ARCH=i686" fi default } src_install() { emake DISTDIR="${D}" install dodoc "${DOCS[@]}" dodoc docs/*.{txt,md} cd "${ED}" || die mkdir -p usr/lib/tboot/ || die mv boot usr/lib/tboot/ || die } pkg_postinst() { cp "${ROOT}/usr/lib/tboot/boot/"* "${ROOT}/boot/" || die ewarn "Please remember to download the SINIT AC Module relevant" ewarn "for your platform from:" ewarn "http://software.intel.com/en-us/articles/intel-trusted-execution-technology/" }