diff --git a/Makefile b/Makefile index 079925659e6fe0fe70e989da896ef11aa2f7af1c..8f2a976ccdb5aed709feab73badb4728cc803144 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,8 @@ +# Process flags +ifeq ($(Y), 1) + YFLAG=-y +endif + # Determine Coq version COQ_VERSION=$(shell coqc --version | egrep -o 'version 8.[0-9]' | egrep -o '8.[0-9]') COQ_MAKEFILE_FLAGS ?= @@ -27,9 +32,10 @@ Makefile.coq: _CoqProject Makefile # Install build-dependencies build-dep: - cat opam.pins | build/opam-pins.sh + build/opam-pins.sh < opam.pins opam pin add coq-lambda-rust "$$(pwd)#HEAD" -k git -n -y - opam install coq-lambda-rust --deps-only -y + opam upgrade $(YFLAG) # it is not nice that we upgrade *all* packages here, but I found no nice way to upgrade only those that we pinned + opam install coq-lambda-rust --deps-only $(YLFAG) # some fiels that do *not* need to be forwarded to Makefile.coq Makefile: ; diff --git a/build/opam-ci.sh b/build/opam-ci.sh index 35117dafd931f62f4fb7ded5fea7a5a6bda8c0ad..fbf91d658197fee4e4b7f7fdbb673fb3617999ab 100755 --- a/build/opam-ci.sh +++ b/build/opam-ci.sh @@ -26,7 +26,7 @@ done # Install build-dependencies echo -make build-dep +make build-dep Y=1 # done echo diff --git a/build/opam-pins.sh b/build/opam-pins.sh index d08fb314e5b865d0d56c88c159d46863247d39b9..aebd23ca2589992274146d8c37ebd2eb7489ac31 100755 --- a/build/opam-pins.sh +++ b/build/opam-pins.sh @@ -1,52 +1,17 @@ #!/bin/bash set -e -## Process an opam.pins file from stdin: Apply the pins and install the packages. -## Usage: (Arguments have to be given in the given order!) -## ./opam-pins.sh [--recursive] -## Arguments: -## -- recursive This is a recurisve call of the script to itself -## (you should not pass this argument yourself manually). - - -# Parse arguments -if [[ "$1" == "--recursive" ]]; then - shift - IS_TOPLEVEL=0 -else - # We are the toplevel call. Record the old pin state. - IS_TOPLEVEL=1 - OLD_PINS="$(mktemp)" - opam pin list > "$OLD_PINS" -fi - -if [[ "$1" == "-n" ]]; then - shift - NFLAG="-n" -else - NFLAG="" -fi +## Process an opam.pins file from stdin: Add all the given pins, but don't install anything. +## Usage: +## ./opam-pins.sh < opam.pins # Process stdin -while read PACKAGE PIN; do - if echo "$PIN" | egrep '^https://gitlab\.mpi-sws\.org' > /dev/null; then +while read PACKAGE URL HASH; do + if echo "$URL" | egrep '^https://gitlab\.mpi-sws\.org' > /dev/null; then + echo "[opam-pins] Recursing into $URL" # an MPI URL -- try doing recursive pin processing - URL=$(echo "$PIN" | sed 's|#|/raw/|')/opam.pins - curl -f "$URL" 2> /dev/null | "$0" --recursive + curl -f "$URL/raw/$HASH" 2> /dev/null | "$0" fi - echo "[opam-pins] Applying pin: $PACKAGE -> $PIN" - opam pin add "$PACKAGE" "$PIN" -k git -y -n + echo "[opam-pins] Applying pin: $PACKAGE -> $URL#$HASH" + opam pin add "$PACKAGE.dev.$HASH" "$URL#$HASH" -k git -y -n echo done - -# If we are the toplevel call, see what pins changed and reinstall if necessary -if [[ "$IS_TOPLEVEL" == "1" ]]; then - NEW_PINS="$(mktemp)" - opam pin list > "$NEW_PINS" - # Compare the pin lists and filter for the changed package names - PACKAGES=$(diff -u0 "$OLD_PINS" "$NEW_PINS" | egrep '^[+][^+]' | sed 's/+\([a-z0-9-]\+\)[ .].*$/\1/') - if [[ -n "$PACKAGES" ]]; then - echo "[opam-pins] Reinstalling packages:" $PACKAGES - opam reinstall $PACKAGES -y - fi - rm "$OLD_PINS" "$NEW_PINS" -fi diff --git a/opam.pins b/opam.pins index db57c918bc869777bdadec2782a242d2c49604bf..a75ec042bf75e544b364bb4b9357456667e9c194 100644 --- a/opam.pins +++ b/opam.pins @@ -1 +1 @@ -coq-iris https://gitlab.mpi-sws.org/FP/iris-coq#e5a3be94012cb4b61ca7d199e39ab026095eb51e +coq-iris https://gitlab.mpi-sws.org/FP/iris-coq 4417beb8bfa43f89c09a027e8dd55550bf8f7a63