mirror of
https://github.com/hashcat/hashcat.git
synced 2025-08-04 12:56:00 +00:00
Update tools/install_modules.sh: make pyenv works with Apple Intel, use pycryptodome instead of pycrypto, add missing Module::Build::Pluggable::XSUtil
This commit is contained in:
parent
b5202e4be6
commit
63377a9890
@ -7,6 +7,20 @@
|
||||
|
||||
## Test suite installation helper script
|
||||
|
||||
IS_APPLE=0
|
||||
IS_APPLE_SILICON=0
|
||||
|
||||
UNAME=$(uname -s)
|
||||
if [ "${UNAME}" == "Darwin" ]; then
|
||||
IS_APPLE=1
|
||||
fi
|
||||
|
||||
if [ ${IS_APPLE} -eq 1 ]; then
|
||||
if [ "$(sysctl -in hw.optional.arm64 2>/dev/null)" == "1" ]; then
|
||||
IS_APPLE_SILICON=1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Sum of all exit codes
|
||||
ERRORS=0
|
||||
|
||||
@ -65,6 +79,7 @@ cpanm Authen::Passphrase::LANManager \
|
||||
Math::BigInt \
|
||||
MIME::Base64 \
|
||||
Module::Build \
|
||||
Module::Build::Pluggable::XSUtil \
|
||||
Net::DNS::RR::NSEC3 \
|
||||
Net::DNS::SEC \
|
||||
POSIX \
|
||||
@ -73,23 +88,38 @@ cpanm Authen::Passphrase::LANManager \
|
||||
|
||||
ERRORS=$((ERRORS+$?))
|
||||
|
||||
cpanm https://github.com/matrix/p5-Digest-BLAKE2.git
|
||||
perl -MDigest::BLAKE2 -e1 &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
cpanm https://github.com/matrix/p5-Digest-BLAKE2.git
|
||||
ERRORS=$((ERRORS+$?))
|
||||
fi
|
||||
|
||||
ERRORS=$((ERRORS+$?))
|
||||
# checks for pyenv
|
||||
|
||||
pyenv_enabled=0
|
||||
|
||||
# check for pyenv
|
||||
which pyenv &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
|
||||
if [[ $(pyenv version-name) != "system" ]]; then
|
||||
|
||||
# active session detected
|
||||
pyenv_enabled=1
|
||||
|
||||
else
|
||||
|
||||
# enum last version available
|
||||
latest=$(pyenv install --list | grep -E "^\s*3\.[0-9]+\.[0-9]$" | tail -n 1)
|
||||
|
||||
if [ $IS_APPLE -eq 1 ]; then
|
||||
if [ $IS_APPLE_SILICON -eq 0 ]; then
|
||||
# workaround but with pyenv and Apple Intel with brew binutils in path
|
||||
remove_path="$(brew --prefix)/opt/binutils/bin"
|
||||
PATH=$(echo "$PATH" | tr ':' '\n' | awk '$0 != "${remove_path}"' | xargs | sed 's/ /:/g')
|
||||
export $PATH
|
||||
fi
|
||||
fi
|
||||
|
||||
# install the latest version or skip it if it is already present
|
||||
pyenv install -s ${latest}
|
||||
|
||||
@ -98,50 +128,46 @@ if [ $? -eq 0 ]; then
|
||||
if [ $? -eq 0 ]; then
|
||||
pyenv_enabled=1
|
||||
fi
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ${pyenv_enabled} -eq 0 ]; then
|
||||
echo "! something is wrong with pyenv. Please setup latest version manually and re-run this script.
|
||||
|
||||
((ERRORS++))
|
||||
echo "! something is wrong with pyenv. Please setup latest version manually and re-run this script."
|
||||
(( ERRORS++ ))
|
||||
|
||||
else
|
||||
|
||||
echo "> Installing python3 deps ..."
|
||||
|
||||
pip3 install git+https://github.com/matrix/pygost
|
||||
|
||||
ERRORS=$((ERRORS+$?))
|
||||
|
||||
# pip3 uninstall -y pycryptoplus pycrypto pycryptodome
|
||||
|
||||
pip3 install pycryptoplus
|
||||
|
||||
ERRORS=$((ERRORS+$?))
|
||||
|
||||
# pip3 uninstall -y pycryptodome # latest versions do not require this work around anymore
|
||||
pip3 install pycrypto
|
||||
|
||||
pip3 install pycryptodome
|
||||
ERRORS=$((ERRORS+$?))
|
||||
|
||||
pip3 install cryptography
|
||||
|
||||
ERRORS=$((ERRORS+$?))
|
||||
|
||||
fi
|
||||
|
||||
php --version > /dev/null 2> /dev/null
|
||||
|
||||
if [ "$?" -ne 0 ]
|
||||
then
|
||||
echo '[ ERROR ] php must be installed for some unit tests'
|
||||
php --version &> /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "! php must be installed for some unit tests'
|
||||
|
||||
ERRORS=$((ERRORS+1))
|
||||
fi
|
||||
|
||||
echo
|
||||
if [ $ERRORS -eq 0 ]; then
|
||||
echo '[ OK ] All commands were successful'
|
||||
exit 0
|
||||
else
|
||||
|
||||
if [ $ERRORS -gt 0 ]; then
|
||||
echo '[ FAIL ] Some commands were not successful'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo '[ OK ] All commands were successful'
|
||||
exit 0
|
||||
|
Loading…
Reference in New Issue
Block a user