From e623804c807bc0cf0cd27ab4a915f8fe516a403f Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Mon, 12 Nov 2018 14:57:50 +0100 Subject: [slx-tpm] initial commit --- builder/modules.d/slx-tpm/module-setup.sh | 83 +++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100755 builder/modules.d/slx-tpm/module-setup.sh diff --git a/builder/modules.d/slx-tpm/module-setup.sh b/builder/modules.d/slx-tpm/module-setup.sh new file mode 100755 index 00000000..0fa1d734 --- /dev/null +++ b/builder/modules.d/slx-tpm/module-setup.sh @@ -0,0 +1,83 @@ +#!/usr/bin/env bash + +declare -rg openssl_tpm2_engine_url="https://git.kernel.org/pub/scm/linux/kernel/git/jejb/openssl_tpm2_engine.git/snapshot" +declare -rg openssl_tpm2_engine_target="openssl_tpm2_engine-1.2.1.tar.gz" +declare -rg ibm_tss_target="ibmtss1234.tar.gz" +declare -rg ibm_tss_url="https://sourceforge.net/projects/ibmtpm20tss/files/$ibm_tss_target/download" + +check() { + if ! hash help2man 2>&1 /dev/null; then + echo "Missing help2man, please install it..." + return 1 + fi + if [ ! -d "$moddir/build/${openssl_tpm2_engine_target%%.*}" ]; then + compile_openssl_tpm2_engine || return 1 + fi + return 255 +} +depends() { + : +} +compile_ibm_tss() { + ( + set -o errexit + wget -O "$ibm_tss_target" "$ibm_tss_url" + local build_dir="$moddir/build/${ibm_tss_target%%.*}" + mkdir -p "$build_dir" + tar xvf "$ibm_tss_target" -C "$build_dir" + cd "$build_dir" + make + ) + local ret=$? + [ $ret -ne 0 ] && rm -rf "$moddir/build/" +} +compile_openssl_tpm2_engine() { + if [ -d "$moddir/build/${ibm_tss_target%%.*}" ]; then + compile_ibm_tss || return 1 + fi + install_ibm_tss "/" + ( + set -o errexit + wget -O "$openssl_tpm2_engine_target" "$openssl_tpm2_engine_url/$openssl_tpm2_engine_target" + local build_dir="$moddir/build/${openssl_tpm2_engine_target%%.*}" + mkdir -p "$build_dir" + tar xvf "$openssl_tpm2_engine_target" -C "$build_dir" + cd "$build_dir" + bash bootstrap.sh + CFLAGS="-I. -Wno-pointer-sign" ./configure + # cause help2man suck... + sed -i '/^HELP2MAN/ s/$/ --no-discard-stderr/' Makefile + make + ) +} +install_ibm_tss() { + if [ "$#" -ne 1 ]; then + echo "Failed: Needs one arg." + return 1 + fi + if [ ! -d "$moddir/build/${ibm_tss_target%%.*}" ]; then + echo "not build of ibm tss" + return 1 + fi + cd "$moddir/build/${ibm_tss_target%%.*}" + mkdir -p "$1/usr/local/bin" + # this is hacky, TODO better with /etc/ld.cache.conf.d ? + cp *.so* "$1/usr/lib" + find . -perm /a+x -type f -exec cp {} "$1/usr/local/bin/" \; + tar cvf - tss2 | tar xvf - -C "$1/usr/local/include" + cd - +} +install_openssl_tpm2_engine() { + if [ ! -d "$moddir/build/${openssl_tpm2_engine_target%%.*}" ]; then + echo "no build of openssl tpm2 engine" + return 1 + fi + cd "$moddir/build/${openssl_tpm2_engine_target%%.*}" + make DESTDIR="$initdir" install +} +install() { + if [ ! -d "$moddir/build/${openssl_tpm2_engine_target%%.*}" ]; then + install_openssl_tpm2_engine || return 1 + fi + return 0 +} -- cgit v1.2.3-55-g7522