diff --git a/lgsm/functions/command_dev_detect_deps.sh b/lgsm/functions/command_dev_detect_deps.sh index 478cb1f3a..784e7c8e5 100644 --- a/lgsm/functions/command_dev_detect_deps.sh +++ b/lgsm/functions/command_dev_detect_deps.sh @@ -8,32 +8,11 @@ local commandname="DEPS-DETECT" local commandaction="Deps-Detect" local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))" -check.sh -cd "${executabledir}" -if [ "${executable}" == "./hlds_run" ]; then - executable=hlds_linux -elif [ "${executable}" == "./srcds_run" ]||[ "${executable}" == "./dabds.sh" ]||[ "${executable}" == "./srcds_run.sh" ]; then - executable=srcds_linux -elif [ "${executable}" == "./server_linux32" ]; then - executable=libSpark_Core.so -elif [ "${executable}" == "./runSam3_DedicatedServer.sh" ]; then - executable=Sam3_DedicatedServer -elif [ "${executable}" == "./7DaysToDie.sh" ]; then - executable=7DaysToDie.x86 -elif [ "${executable}" == "./ucc-bin" ]; then - - if [ -f "${executabledir}/ucc-bin-real" ]; then - executable=ucc-bin-real - elif [ -f "${executabledir}/ut2004-bin" ]; then - executable=ut2004-bin - else - executable=ut-bin - fi - -elif [ "${executable}" == "./ts3server_startscript.sh" ]; then - executable=ts3server_linux_amd64 -fi - +echo "=================================" +echo "Dependencies Checker" +echo "=================================" +echo "Checking directory: " +echo "${filesdir}" if [ "$(command -v eu-readelf 2>/dev/null)" ]; then readelf=eu-readelf elif [ "$(command -v readelf 2>/dev/null)" ]; then @@ -42,29 +21,34 @@ else echo "readelf/eu-readelf not installed" fi -${readelf} -d ${executable} |grep NEEDED|awk '{ print $5 }'|sed 's/\[//g'|sed 's/\]//g' > "${tmpdir}/.depdetect_readelf" +files=$(find ${filesdir} | wc -l) +find "${filesdir}" -type f -print0 | +while IFS= read -r -d $'\0' line; do + ${readelf} -d "${line}" 2>/dev/null|grep NEEDED|awk '{ print $5 }'|sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf" + echo -n "${i} / ${files}" $'\r' + ((i++)) +done +sort "${tmpdir}/.depdetect_readelf" |uniq >"${tmpdir}/.depdetect_readelf_uniq" -echo "yum install " > "${tmpdir}/.depdetect_centos_list_uniq" -echo "apt-get install " > "${tmpdir}/.depdetect_ubuntu_list_uniq" -echo "apt-get install " > "${tmpdir}/.depdetect_debian_list_uniq" while read lib; do - sharedlib=${lib} - if [ "${lib}" == "libm.so.6" ]||[ "${lib}" == "libc.so.6" ]||[ "${lib}" == "libpthread.so.0" ]||[ "${lib}" == "libdl.so.2" ]||[ "${lib}" == "libnsl.so.1" ]||[ "${lib}" == "libgcc_s.so.1" ]||[ "${lib}" == "librt.so.1" ]||[ "${lib}" == "ld-linux.so.2" ]; then + + if [ "${lib}" == "libm.so.6" ]||[ "${lib}" == "libc.so.6" ]||[ "${lib}" == "libtcmalloc_minimal.so.4" ]||[ "${lib}" == "libpthread.so.0" ]||[ "${lib}" == "libdl.so.2" ]||[ "${lib}" == "libnsl.so.1" ]||[ "${lib}" == "libgcc_s.so.1" ]||[ "${lib}" == "librt.so.1" ]||[ "${lib}" == "ld-linux.so.2" ]; then echo "glibc.i686" >> "${tmpdir}/.depdetect_centos_list" echo "lib32gcc1" >> "${tmpdir}/.depdetect_ubuntu_list" echo "lib32gcc1" >> "${tmpdir}/.depdetect_debian_list" - elif [ "${lib}" == "libstdc++.so.6" ]; then echo "libstdc++.i686" >> "${tmpdir}/.depdetect_centos_list" echo "libstdc++6:i386" >> "${tmpdir}/.depdetect_ubuntu_list" echo "libstdc++6:i386" >> "${tmpdir}/.depdetect_debian_list" - elif [ "${lib}" == "libstdc++.so.5" ]; then echo "compat-libstdc++-33.i686" >> "${tmpdir}/.depdetect_centos_list" echo "libstdc++5:i386" >> "${tmpdir}/.depdetect_ubuntu_list" echo "libstdc++5:i386" >> "${tmpdir}/.depdetect_debian_list" - + elif [ "${lib}" == "libcurl-gnutls.so.4" ]; then + echo "libcurl.i686" >> "${tmpdir}/.depdetect_centos_list" + echo "libcurl4-gnutls-dev:i386" >> "${tmpdir}/.depdetect_ubuntu_list" + echo "libcurl4-gnutls-dev:i386" >> "${tmpdir}/.depdetect_debian_list" elif [ "${lib}" == "libspeex.so.1" ]||[ "${lib}" == "libspeexdsp.so.1" ]; then echo "speex.i686" >> "${tmpdir}/.depdetect_centos_list" echo "speex:i386" >> "${tmpdir}/.depdetect_ubuntu_list" @@ -80,14 +64,17 @@ while read lib; do echo "libtbb2" >> "${tmpdir}/.depdetect_ubuntu_list" echo "libtbb2" >> "${tmpdir}/.depdetect_debian_list" - elif [ "${lib}" == "libtier0.so" ]||[ "${lib}" == "Core.so" ]||[ "${lib}" == "Editor.so" ]||[ "${lib}" == "Engine.so" ]||[ "${lib}" == "liblua.so" ]||[ "${lib}" == "libsteam_api.so" ]||[ "${lib}" == "ld-linux-x86-64.so.2" ]||[ "${lib}" == "libPhysX3_x86.so" ]||[ "${lib}" == "libPhysX3Common_x86.so" ]||[ "${lib}" == "libPhysX3Cooking_x86.so" ]; then + elif [ "${lib}" == "libtier0.so" ]||[ "${lib}" == "libtier0_srv.so" ]||[ "${lib}" == "libvstdlib_srv.so" ]||[ "${lib}" == "Core.so" ]||[ "${lib}" == "libvstdlib.so" ]||[ "${lib}" == "libtier0_s.so" ]||[ "${lib}" == "Editor.so" ]||[ "${lib}" == "Engine.so" ]||[ "${lib}" == "liblua.so" ]||[ "${lib}" == "libsteam_api.so" ]||[ "${lib}" == "ld-linux-x86-64.so.2" ]||[ "${lib}" == "libPhysX3_x86.so" ]||[ "${lib}" == "libPhysX3Common_x86.so" ]||[ "${lib}" == "libPhysX3Cooking_x86.so" ]; then # Known shared libs what dont requires dependencies : else unknownlib=1 echo "${lib}" >> "${tmpdir}/.depdetect_unknown" fi -done < "${tmpdir}/.depdetect_readelf" + +done < "${tmpdir}/.depdetect_readelf_uniq" + + sort "${tmpdir}/.depdetect_centos_list" | uniq >> "${tmpdir}/.depdetect_centos_list_uniq" sort "${tmpdir}/.depdetect_ubuntu_list" | uniq >> "${tmpdir}/.depdetect_ubuntu_list_uniq" sort "${tmpdir}/.depdetect_debian_list" | uniq >> "${tmpdir}/.depdetect_debian_list_uniq" @@ -95,10 +82,10 @@ if [ "${unknownlib}" == "1" ]; then sort "${tmpdir}/.depdetect_unknown" | uniq >> "${tmpdir}/.depdetect_unknown_uniq" fi -awk -vORS=' ' '{ print $1, $2 }' "${tmpdir}/.depdetect_centos_list_uniq" > "${tmpdir}/.depdetect_centos_line" -awk -vORS=' ' '{ print $1, $2 }' "${tmpdir}/.depdetect_ubuntu_list_uniq" > "${tmpdir}/.depdetect_ubuntu_line" -awk -vORS=' ' '{ print $1, $2 }' "${tmpdir}/.depdetect_debian_list_uniq" > "${tmpdir}/.depdetect_debian_line" - +awk -vORS='' '{ print $1,$2 }' "${tmpdir}/.depdetect_centos_list_uniq" > "${tmpdir}/.depdetect_centos_line" +awk -vORS='' '{ print $1,$2 }' "${tmpdir}/.depdetect_ubuntu_list_uniq" > "${tmpdir}/.depdetect_ubuntu_line" +awk -vORS='' '{ print $1,$2 }' "${tmpdir}/.depdetect_debian_list_uniq" > "${tmpdir}/.depdetect_debian_line" +echo "" echo "" echo "Required Dependencies" echo "=================================" @@ -128,10 +115,6 @@ echo "" echo "Required Librarys" echo "=================================" sort "${tmpdir}/.depdetect_readelf" |uniq -echo "" -echo "ldd" -echo "=================================" -ldd ${executable} echo -en "\n" rm -f "${tmpdir}/.depdetect_centos_line" rm -f "${tmpdir}/.depdetect_centos_list" @@ -150,4 +133,4 @@ rm -f "${tmpdir}/.depdetect_readelf" rm -f "${tmpdir}/.depdetect_unknown" rm -f "${tmpdir}/.depdetect_unknown_uniq" -core_exit.sh +core_exit.sh \ No newline at end of file diff --git a/lgsm/functions/command_dev_detect_glibc.sh b/lgsm/functions/command_dev_detect_glibc.sh index 536a12c2a..08b178117 100644 --- a/lgsm/functions/command_dev_detect_glibc.sh +++ b/lgsm/functions/command_dev_detect_glibc.sh @@ -1,5 +1,5 @@ #!/bin/bash -# command_dev_detect_glibc.sh function +# LinuxGSM command_dev_detect_glibc.sh function # Author: Daniel Gibbs # Website: https://gameservermanagers.com # Description: Automatically detects the version of GLIBC that is required. @@ -15,10 +15,6 @@ if [ -z "$(command -v objdump)" ]; then core_exit.sh fi -if [ -z "${filesdir}" ]; then - dir="$(dirname $(readlink -f "${BASH_SOURCE[0]}"))" -fi - if [ -d "${filesdir}" ]; then echo "Checking directory: " echo "${filesdir}" @@ -29,10 +25,10 @@ fi echo "" files=$(find ${filesdir} | wc -l) -find ${filesdir} -type f -print0 | +find "${filesdir}" -type f -print0 | while IFS= read -r -d $'\0' line; do - objdump -T $line 2>/dev/null|grep -oP "GLIBC[^ ]+" >>"${tmpdir}/detect_glibc.tmp" - echo -n "$i / $files" $'\r' + objdump -T "${line}" 2>/dev/null|grep -oP "GLIBC[^ ]+" >>"${tmpdir}/detect_glibc.tmp" + echo -n "${i} / ${files}" $'\r' ((i++)) done echo ""