diff --git a/server/repro/.gitignore b/server/repro/.gitignore new file mode 100644 index 0000000..dacf9dc --- /dev/null +++ b/server/repro/.gitignore @@ -0,0 +1 @@ +env/libs \ No newline at end of file diff --git a/server/repro/env/libs/libDataPipes.so b/server/repro/env/libs/libDataPipes.so index 306d809..bc9e596 120000 --- a/server/repro/env/libs/libDataPipes.so +++ b/server/repro/env/libs/libDataPipes.so @@ -1 +1 @@ -../../../../../libraries/DataPipes/build/libDataPipes.so \ No newline at end of file +/home/wolverindev/TeaSpeak/server/libraries/DataPipes/out/linux_amd64//lib/libDataPipes.so \ No newline at end of file diff --git a/server/repro/env/libs/libTeaMusic.so b/server/repro/env/libs/libTeaMusic.so index 1e2f627..4ab3022 120000 --- a/server/repro/env/libs/libTeaMusic.so +++ b/server/repro/env/libs/libTeaMusic.so @@ -1 +1 @@ -../../../../MusicBot/libs/libTeaMusic.so \ No newline at end of file +/home/wolverindev/TeaSpeak/server/TeaSpeak/MusicBot/libs/libTeaMusic.so \ No newline at end of file diff --git a/server/repro/env/libs/libcrypto.so b/server/repro/env/libs/libcrypto.so index fae1f22..492e54c 120000 --- a/server/repro/env/libs/libcrypto.so +++ b/server/repro/env/libs/libcrypto.so @@ -1 +1 @@ -../../../../../libraries/boringssl/build/crypto/libcrypto.so \ No newline at end of file +/home/wolverindev/TeaSpeak/server/libraries/boringssl/out/linux_amd64/crypto/libcrypto.so \ No newline at end of file diff --git a/server/repro/env/libs/libjemalloc.so.2 b/server/repro/env/libs/libjemalloc.so.2 index a747e34..c2e9248 120000 --- a/server/repro/env/libs/libjemalloc.so.2 +++ b/server/repro/env/libs/libjemalloc.so.2 @@ -1 +1 @@ -../../../../../libraries/jemalloc/out/libjemalloc.so.2 \ No newline at end of file +/home/wolverindev/TeaSpeak/server/libraries/jemalloc/out/linux_amd64/lib/libjemalloc.so.2 \ No newline at end of file diff --git a/server/repro/env/libs/libopus.so.0 b/server/repro/env/libs/libopus.so.0 deleted file mode 120000 index 7728f6c..0000000 --- a/server/repro/env/libs/libopus.so.0 +++ /dev/null @@ -1 +0,0 @@ -/usr/local/lib/libopus.so.0 \ No newline at end of file diff --git a/server/repro/env/libs/libssl.so b/server/repro/env/libs/libssl.so index 1855f24..45bf57c 120000 --- a/server/repro/env/libs/libssl.so +++ b/server/repro/env/libs/libssl.so @@ -1 +1 @@ -../../../../../libraries/boringssl/build/ssl/libssl.so \ No newline at end of file +/home/wolverindev/TeaSpeak/server/libraries/boringssl/out/linux_amd64/ssl/libssl.so \ No newline at end of file diff --git a/server/repro/generate_libraries.sh b/server/repro/generate_libraries.sh new file mode 100755 index 0000000..2ee59e3 --- /dev/null +++ b/server/repro/generate_libraries.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +#Required libraries: +# "libssl.so" +# "libcrypto.so" +# "libDataPipes.so" +# "libjemalloc.so.2" +# "libsqlite3.so.0" +# "libTeaMusic.so" + +[[ -z "${build_os_type}" ]] && { echo "missing build os type"; exit 1; } +[[ -z "${build_os_arch}" ]] && { echo "missing build os arch"; exit 1; } +build_path="out/${build_os_type}_${build_os_arch}/" + +function query_system_link() { + echo "Query for $1" + data=$(ldd ../../../environment/TeaSpeakServer | grep "$1") + # shellcheck disable=SC2206 + data=($data) + library_path=${data[2]} + + [[ -z "${library_path}" ]] && { echo "failed to resolve library path for $1"; exit 1; } + [[ "${library_path}" == "not" ]] && { echo "failed to resolve library path for $1"; exit 1; } +} + +cd $(dirname $0) || exit 1 +cd env || { echo "failed to enter env"; exit 1; } + +[[ -d libs ]] && { + rm -r libs || { echo "failed to delete old lib folder"; exit 1; } +} +mkdir libs || { echo "failed to create lib directory"; exit 1; } +cd libs || { echo "failed to enter lib directory"; exit 1; } + +# Creating symbolic links +library_base=$(realpath ../../../../../libraries) +echo "$library_base" + +# Setting up ssl +library_path=$(realpath "${library_base}/boringssl/${build_path}/ssl/libssl.so") +ln -s "$library_path" . || { echo "failed to link libssl.so"; exit 1; } + +# Setting up crypto +library_path=$(realpath "${library_base}/boringssl/${build_path}/crypto/libcrypto.so") +ln -s "$library_path" . || { echo "failed to link libcrypto.so"; exit 1; } + +# Setting up DataPipes +ln -s "${library_base}/DataPipes/${build_path}/lib/libDataPipes.so" . || { echo "failed to link libDataPipes.so"; exit 1; } + +# Setting up Sqlite3 +query_system_link "libsqlite3.so.0" +ln -s "${library_path}" . || { echo "failed to link libsqlite3.so.0"; exit 1; } + +# Setting up jemalloc +query_system_link "libjemalloc.so.2" +ln -s "${library_path}" . || { echo "failed to link libjemalloc.so.2"; exit 1; } + +# Setting up TeaMusic +library_path=$(realpath "../../../../MusicBot/libs/libTeaMusic.so") +ln -s "$library_path" . || { echo "failed to link libTeaMusic.so"; exit 1; } + +# Validate setup +broken_links=$(find . -type l ! -exec test -e {} \; -print) +[[ -n ${broken_links} ]] && { + echo "Failed to setup all links. Some seem to be broken:" + echo "$broken_links" + exit 1 +} + +echo "All libraries have been linked successfully" \ No newline at end of file