From 7d6f8b839f6a37a0694c93906410fb078c4269a0 Mon Sep 17 00:00:00 2001 From: Salah Coronya Date: Tue, 29 Dec 2020 20:28:16 -0600 Subject: [PATCH 1/4] app-crypt/tpm2-tss: Add libressl support Closes: https://bugs.gentoo.org/762445 Package-Manager: Portage-3.0.9, Repoman-3.0.2 Signed-off-by: Salah Coronya --- ...-tss-2.4.5-fix-compile-with-libressl.patch | 44 ++++++++++ app-crypt/tpm2-tss/tpm2-tss-2.4.5-r1.ebuild | 83 +++++++++++++++++++ 2 files changed, 127 insertions(+) create mode 100644 app-crypt/tpm2-tss/files/tpm2-tss-2.4.5-fix-compile-with-libressl.patch create mode 100644 app-crypt/tpm2-tss/tpm2-tss-2.4.5-r1.ebuild diff --git a/app-crypt/tpm2-tss/files/tpm2-tss-2.4.5-fix-compile-with-libressl.patch b/app-crypt/tpm2-tss/files/tpm2-tss-2.4.5-fix-compile-with-libressl.patch new file mode 100644 index 00000000000..aba2bf294f5 --- /dev/null +++ b/app-crypt/tpm2-tss/files/tpm2-tss-2.4.5-fix-compile-with-libressl.patch @@ -0,0 +1,44 @@ +diff --git a/src/tss2-esys/esys_crypto_ossl.c b/src/tss2-esys/esys_crypto_ossl.c +index 2746856b..b6c9fb48 100644 +--- a/src/tss2-esys/esys_crypto_ossl.c ++++ b/src/tss2-esys/esys_crypto_ossl.c +@@ -25,7 +25,7 @@ + #include "util/log.h" + #include "util/aux_util.h" + +-#if OPENSSL_VERSION_NUMBER >= 0x10101000L ++#if (OPENSSL_VERSION_NUMBER >= 0x10101000L) && !defined(LIBRESSL_VERSION_NUMBER) + #define EC_POINT_set_affine_coordinates_tss(group, tpm_pub_key, bn_x, bn_y, dmy) \ + EC_POINT_set_affine_coordinates(group, tpm_pub_key, bn_x, bn_y, dmy) + +@@ -525,7 +525,7 @@ iesys_cryptossl_random2b(TPM2B_NONCE * nonce, size_t num_bytes) + nonce->size = num_bytes; + } + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) + RAND_set_rand_method(RAND_OpenSSL()); + #else + RAND_set_rand_method(RAND_SSLeay()); +@@ -563,7 +563,7 @@ iesys_cryptossl_pk_encrypt(TPM2B_PUBLIC * pub_tpm_key, + size_t * out_size, const char *label) + { + const RAND_METHOD *rand_save = RAND_get_rand_method(); +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) + RAND_set_rand_method(RAND_OpenSSL()); + #else + RAND_set_rand_method(RAND_SSLeay()); +diff --git a/src/tss2-fapi/fapi_crypto.c b/src/tss2-fapi/fapi_crypto.c +index f5b3d272..32962f13 100644 +--- a/src/tss2-fapi/fapi_crypto.c ++++ b/src/tss2-fapi/fapi_crypto.c +@@ -26,7 +26,7 @@ + #define LOGMODULE fapi + #include "util/log.h" + +-#if OPENSSL_VERSION_NUMBER >= 0x10101000L ++#if (OPENSSL_VERSION_NUMBER >= 0x10101000L) && !defined(LIBRESSL_VERSION_NUMBER) + #define EC_POINT_set_affine_coordinates_tss(group, tpm_pub_key, bn_x, bn_y, dmy) \ + EC_POINT_set_affine_coordinates(group, tpm_pub_key, bn_x, bn_y, dmy) + diff --git a/app-crypt/tpm2-tss/tpm2-tss-2.4.5-r1.ebuild b/app-crypt/tpm2-tss/tpm2-tss-2.4.5-r1.ebuild new file mode 100644 index 00000000000..df947771921 --- /dev/null +++ b/app-crypt/tpm2-tss/tpm2-tss-2.4.5-r1.ebuild @@ -0,0 +1,83 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools linux-info tmpfiles udev + +DESCRIPTION="TCG Trusted Platform Module 2.0 Software Stack" +HOMEPAGE="https://github.com/tpm2-software/tpm2-tss" +SRC_URI="https://github.com/tpm2-software/${PN}/releases/download/${PV}/${P}.tar.gz" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" +IUSE="doc +fapi libressl gcrypt static-libs test" + +RESTRICT="!test? ( test )" + +REQUIRED_USE=" ?? ( gcrypt libressl ) + fapi? ( !gcrypt )" + +RDEPEND="acct-group/tss + acct-user/tss + fapi? ( + dev-libs/json-c + net-misc/curl + ) + gcrypt? ( dev-libs/libgcrypt:= ) + libressl? ( dev-libs/libressl:= ) + !libressl? ( + !gcrypt? ( dev-libs/openssl:= ) + )" + +DEPEND="${RDEPEND} + test? ( dev-util/cmocka )" +BDEPEND="virtual/pkgconfig + doc? ( app-doc/doxygen )" + +PATCHES=( + "${FILESDIR}/${PN}-2.4.1-configure.ac-wrap-PKG_CHECK_MODULES-in-braces.patch" + "${FILESDIR}/${PN}-2.4.2-Dont-run-systemd-sysusers-in-Makefile.patch" + "${FILESDIR}/${PN}-2.4.5-fix-compile-with-libressl.patch" +) + +pkg_setup() { + local CONFIG_CHECK=" \ + ~TCG_TPM + " + linux-info_pkg_setup + kernel_is ge 4 12 0 || ewarn "At least kernel 4.12.0 is required" +} + +src_prepare() { + default + eautoreconf +} + +src_configure() { + econf \ + --localstatedir=/var \ + $(use_enable doc doxygen-doc) \ + $(use_enable fapi) \ + $(use_enable static-libs static) \ + $(use_enable test unit) \ + --disable-tcti-mssim \ + --disable-defaultflags \ + --disable-weakcrypto \ + --with-crypto="$(usex gcrypt gcrypt ossl)" \ + --with-runstatedir=/run \ + --with-udevrulesdir="$(get_udevdir)/rules.d" \ + --with-udevrulesprefix=60- \ + --with-sysusersdir="/usr/lib/sysusers.d" \ + --with-tmpfilesdir="/usr/lib/tmpfiles.d" +} + +src_install() { + default + find "${D}" -name '*.la' -delete || die +} + +pkg_postinst() { + tmpfiles_process tpm2-tss-fapi.conf +} -- 2.26.2