Make build env script more robust, take it out of makefile

This commit is contained in:
John David Pressman 2019-06-08 12:03:53 -07:00
parent efb480a449
commit 0575176939
2 changed files with 42 additions and 9 deletions

View File

@ -1,8 +1,8 @@
install: # Use install-deps instead of 'install' because usually 'make install' adds a
# Install opam and dependencies # binary to the system path and we don't want to confuse users
scripts/install_build_environment.sh install-deps:
# Install ligo/tezos specific system-level dependencies # Install ligo/tezos specific system-level dependencies
scripts/install_native_dependencies.sh sudo scripts/install_native_dependencies.sh
build-deps: build-deps:
# Create opam dev switch locally for use with Ligo, add merlin/etc # Create opam dev switch locally for use with Ligo, add merlin/etc

View File

@ -1,3 +1,20 @@
# This script installs opam for the user. It should NOT be included in any makefiles/etc.
if [ -n "`which opam`"]
then
if [ -n "`opam --version | grep -P "2\..\.."`" ]
then
echo "Opam 2.x seems to already exist, exiting..."
exit 1
fi
else
read -p "This script will upgrade opam to the 2.x series, are you okay with that? (y/n)" choice1
case "$choice1" in
y|Y ) : ;;
n|N ) exit ;;
esac
fi
sudo apt-get install -y make \ sudo apt-get install -y make \
m4 \ m4 \
gcc \ gcc \
@ -10,19 +27,35 @@ if [ -n "`uname -a | grep -i ubuntu`" ]
then then
sudo add-apt-repository -y ppa:avsm/ppa sudo add-apt-repository -y ppa:avsm/ppa
sudo apt-get update sudo apt-get update
sudo apt-get install -y opam sudo apt-get install opam
else else
# I'm going to assume here that we're on x86_64, 32-bit users should be basically # I'm going to assume here that we're on x86_64, 32-bit users should be basically
# extinct at this point right? # extinct at this point right?
curl -L https://github.com/ocaml/opam/releases/download/2.0.4/opam-2.0.4-x86_64-linux \ curl -L https://github.com/ocaml/opam/releases/download/2.0.4/opam-2.0.4-x86_64-linux \
--output opam --output opam_temp_version_2_0_4.bin
if [ "`openssl sha256 -r opam`" = "373e34f92f282273d482537f8103caad0d17b6f2699ff504bed77f474cb0c951 *opam" ] if [ "`openssl sha256 -r opam`" = "373e34f92f282273d482537f8103caad0d17b6f2699ff504bed77f474cb0c951 *opam" ]
then then
sudo mv opam /usr/local/bin/opam # Stay paranoid, in case other checks fail don't want to overrwrite
sudo chmod +x /usr/local/bin/opam # user's opam on accident
chmod +x opam_temp_version_2_0_4.bin # Set execute so we can get version
if [ -e /usr/local/bin/opam ]
then
opam_old_v=`/usr/local/bin/opam --version`
opam_new_v=`opam_temp_version_2_0_4.bin --version`
read -p "This will overrwrite the opam you have in /usr/local/bin (version $opam_old_v) with version $opam_new_v, do you actually want to do that? Type yes. (yes/n)" choice2
else
choice2="yes"
fi
if [ $choice2 = "yes" ]
then
sudo mv opam_temp_version_2_0_4.bin /usr/local/bin/opam
else
rm opam_temp_version_2_0_4.bin
exit
else else
echo "opam file hash doesn't match what was recorded at time of signature verification!" echo "opam file hash doesn't match what was recorded at time of signature verification!"
echo "(If you actually get this message, you should probably file an issue)" echo "(If you actually get this message, you should probably file an issue)"
echo "https://gitlab.com/ligolang/ligo/issues"
exit 1 exit 1
fi fi
fi fi