From 389662590b8fd5b2deb28171fc5bd80a67ea994b Mon Sep 17 00:00:00 2001 From: David Allsopp Date: Thu, 16 Jul 2020 12:19:53 +0100 Subject: [PATCH] Fix bootstrap opam version detection Version was never written to ~/local/versions - correct this and also correct the "default" version to be the version returned by the binary, rather than just assuming it's the correct binary! --- .travis-ci.sh | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/.travis-ci.sh b/.travis-ci.sh index d49002735f9..61fe6e607f3 100755 --- a/.travis-ci.sh +++ b/.travis-ci.sh @@ -39,6 +39,11 @@ else fi set -x +write_versions () { + echo "LOCAL_OCAML_VERSION=$OCAML_VERSION" > ~/local/versions + echo "LOCAL_OPAMBSVERSION=$OPAMBSVERSION" >> ~/local/versions +} + init-bootstrap () { export OPAMROOT=$OPAMBSROOT # The system compiler will be picked up @@ -129,10 +134,20 @@ EOF echo "Cached compiler is $LOCAL_OCAML_VERSION; requested $OCAML_VERSION" echo "Resetting local cache" rm -rf ~/local - elif [[ ${LOCAL_OPAMBSVERSION:-$OPAMBSVERSION} != $OPAMBSVERSION ]] ; then - echo "Cached opam is $LOCAL_OPAMBSVERSION; requested $OPAMBSVERSION" - echo "Replacement opam will be downloaded" - rm -f ~/local/bin/opam-bootstrap + elif [[ -e ~/local/bin/opam-bootstrap ]] ; then + if [[ -z ${LOCAL_OPAMBSVERSION:-} ]] ; then + ls -l ~/local/bin + chmod +x ~/local/bin/opam-bootstrap + LOCAL_OPAMBSVERSION="$(~/local/bin/opam-bootstrap --version)" + chmod -x ~/local/bin/opam-bootstrap + fi + if [[ $LOCAL_OPAMBSVERSION != $OPAMBSVERSION ]] ; then + echo "Cached opam is $LOCAL_OPAMBSVERSION; requested $OPAMBSVERSION" + echo "Replacement opam will be downloaded" + rm -f ~/local/bin/opam-bootstrap + # The root may well have been written by a newer version of opam + rm -rf "$OPAMBSROOT" + fi fi fi fi @@ -174,7 +189,7 @@ EOF make install cd .. rm -rf "ocaml-$OCAML_VERSION" - echo "LOCAL_OCAML_VERSION=$OCAML_VERSION" > ~/local/versions + write_versions (set +x ; echo -en "travis_fold:end:ocaml\r") 2>/dev/null fi @@ -183,6 +198,7 @@ EOF if [[ ! -e ~/local/bin/opam-bootstrap ]] ; then wget -q -O ~/local/bin/opam-bootstrap \ "https://github.com/ocaml/opam/releases/download/$OPAMBSVERSION/opam-$OPAMBSVERSION-$(uname -m)-$(uname -s)" + write_versions fi cp -f ~/local/bin/opam-bootstrap ~/local/bin/opam