summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Bauer2018-11-12 14:57:50 +0100
committerJonathan Bauer2018-11-12 17:30:33 +0100
commite623804c807bc0cf0cd27ab4a915f8fe516a403f (patch)
treeca4ba7164534073dc560da689e4cf81a92a4cb2a
parent[dnbd3-rfs] refactor to use slx-partitioner (diff)
downloadsystemd-init-e623804c807bc0cf0cd27ab4a915f8fe516a403f.tar.gz
systemd-init-e623804c807bc0cf0cd27ab4a915f8fe516a403f.tar.xz
systemd-init-e623804c807bc0cf0cd27ab4a915f8fe516a403f.zip
[slx-tpm] initial commit
-rwxr-xr-xbuilder/modules.d/slx-tpm/module-setup.sh83
1 files changed, 83 insertions, 0 deletions
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
+}