From 1422d52d14d08b4aba0abc6d816994d5b35da908 Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Mon, 16 Jul 2018 14:58:50 +0200 Subject: [PATCH 1/6] Use opam2 --- .travis-docker.sh | 23 ++++++- .travis-ocaml.sh | 148 +++++++++++++++++++++++++++++++++------------- src/ci_opam.ml | 12 +++- 3 files changed, 140 insertions(+), 43 deletions(-) diff --git a/.travis-docker.sh b/.travis-docker.sh index f658aa2..9dade2f 100644 --- a/.travis-docker.sh +++ b/.travis-docker.sh @@ -5,10 +5,12 @@ echo -en "travis_fold:start:prepare.ci\r" default_user=ocaml default_branch=master default_hub_user=ocaml +default_opam_version=2.0.0 fork_user=${FORK_USER:-$default_user} fork_branch=${FORK_BRANCH:-$default_branch} hub_user=${HUB_USER:-$default_hub_user} +opam_version=${OPAM_VERSION:-$default_opam_version} # create env file echo PACKAGE="$PACKAGE" > env.list @@ -24,14 +26,22 @@ echo POST_INSTALL_HOOK="$POST_INSTALL_HOOK" >> env.list echo $EXTRA_ENV >> env.list # build a local image to trigger any ONBUILDs -echo FROM ${hub_user}/opam:${DISTRO}_ocaml-${OCAML_VERSION} > Dockerfile +case $opam_version in + 2.0.0) from=${hub_user}/opam2:${DISTRO} ;; + *) from=${hub_user}/opam:${DISTRO}_ocaml-${OCAML_VERSION} ;; +esac + +echo FROM $from > Dockerfile echo WORKDIR /home/opam/opam-repository >> Dockerfile if [ -n "$BASE_REMOTE" ]; then echo "RUN git remote set-url origin ${BASE_REMOTE} &&\ git fetch origin && git reset --hard origin/master" >> Dockerfile else - echo RUN git pull -q origin master >> Dockerfile + case $opam_version in + 2.0.0) echo RUN git pull -q origin 2.0.0 >> Dockerfile ;; + *) echo RUN git pull -q origin master >> Dockerfile ;; + esac fi @@ -42,6 +52,14 @@ if [ $fork_user != $default_user -o $fork_branch != $default_branch ]; then >> Dockerfile fi +case $opam_version in + 2.0.0) + echo ENV OPAMYES=1 >> Dockerfile + [[ ${DISTRO} = "fedora"* ]] && + echo RUN sudo yum install rsync -y >> Dockerfile ;; + *) ;; +esac + echo RUN opam update -u -y >> Dockerfile echo RUN opam depext -ui travis-opam >> Dockerfile echo RUN cp '~/.opam/$(opam switch show)/bin/ci-opam' "~/" >> Dockerfile @@ -49,6 +67,7 @@ echo RUN opam remove -a travis-opam >> Dockerfile echo RUN mv "~/ci-opam" '~/.opam/$(opam switch show)/bin/ci-opam' >> Dockerfile echo VOLUME /repo >> Dockerfile echo WORKDIR /repo >> Dockerfile + docker build -t local-build . echo Dockerfile: diff --git a/.travis-ocaml.sh b/.travis-ocaml.sh index 1b08673..8e62b67 100644 --- a/.travis-ocaml.sh +++ b/.travis-ocaml.sh @@ -28,11 +28,14 @@ fi # the ocaml version to test OCAML_VERSION=${OCAML_VERSION:-latest} -OPAM_VERSION=${OPAM_VERSION:-1.2.2} +OPAM_VERSION=${OPAM_VERSION:-2.0.0} OPAM_INIT=${OPAM_INIT:-true} # the base opam repository to use for bootstrapping and catch-all namespace -BASE_REMOTE=${BASE_REMOTE:-git://github.com/ocaml/opam-repository} +case $OPAM_VERSION in + 2.0.0) BASE_REMOTE=${BASE_REMOTE:-git://github.com/ocaml/opam-repository#2.0.0} ;; + *) BASE_REMOTE=${BASE_REMOTE:-git://github.com/ocaml/opam-repository} ;; +esac # whether we need a new gcc and binutils UPDATE_GCC_BINUTILS=${UPDATE_GCC_BINUTILS:-"0"} @@ -43,42 +46,22 @@ UBUNTU_TRUSTY=${UBUNTU_TRUSTY:-"0"} # Install XQuartz on OSX INSTALL_XQUARTZ=${INSTALL_XQUARTZ:-"true"} -install_on_linux () { - case "$OCAML_VERSION,$OPAM_VERSION" in - 3.12,1.2.2) - OCAML_VERSION=4.02; OCAML_FULL_VERSION=3.12.1 - ppa=avsm/ocaml42+opam12 ;; - 4.00,1.2.2) - OCAML_VERSION=4.02; OCAML_FULL_VERSION=4.00.1 - ppa=avsm/ocaml42+opam12 ;; - 4.01,1.2.2) - OCAML_VERSION=4.02; OCAML_FULL_VERSION=4.01.0 - ppa=avsm/ocaml42+opam12 ;; - 4.02,1.1.2) OCAML_FULL_VERSION=4.02.3; OPAM_SWITCH=${OPAM_SWITCH:-system}; ppa=avsm/ocaml42+opam11 ;; - 4.02,1.2.0) OCAML_FULL_VERSION=4.02.3; OPAM_SWITCH=${OPAM_SWITCH:-system}; ppa=avsm/ocaml42+opam120 ;; - 4.02,1.2.1) OCAML_FULL_VERSION=4.02.3; OPAM_SWITCH=${OPAM_SWITCH:-system}; ppa=avsm/ocaml42+opam121 ;; - 4.02,1.2.2) OCAML_FULL_VERSION=4.02.3; OPAM_SWITCH=${OPAM_SWITCH:-system}; ppa=avsm/ocaml42+opam12 ;; - 4.03,1.2.2) - OCAML_VERSION=4.02; OCAML_FULL_VERSION=4.03.0 - ppa=avsm/ocaml42+opam12 ;; - 4.04,1.2.2) - OCAML_VERSION=4.02; OCAML_FULL_VERSION=4.04.2 - ppa=avsm/ocaml42+opam12 ;; - 4.05,1.2.2) - OCAML_VERSION=4.02; OCAML_FULL_VERSION=4.05.0 - ppa=avsm/ocaml42+opam12 ;; - 4.06,1.2.2) - OCAML_VERSION=4.02; OCAML_FULL_VERSION=4.06.1 - ppa=avsm/ocaml42+opam12 ;; - 4.07,1.2.2) - OCAML_VERSION=4.02; OCAML_FULL_VERSION=4.07.0 - ppa=avsm/ocaml42+opam12 ;; - *) echo "Unknown OCAML_VERSION=$OCAML_VERSION OPAM_VERSION=$OPAM_VERSION" - echo "(An unset OCAML_VERSION used to default to \"latest\", but you must now specify it." - echo "Try something like \"OCAML_VERSION=3.12\", \"OCAML_VERSION=4.07\", or see README-travis.md at https://github.com/ocaml/ocaml-ci-scripts )" - exit 1 ;; - esac +install_opam2 () { + case $TRAVIS_OS_NAME in + linux) + sudo add-apt-repository --yes ppa:ansible/bubblewrap + sudo apt-get update -qq + sudo apt-get install -y bubblewrap + sudo wget https://github.com/ocaml/opam/releases/download/2.0.0-rc3/opam-2.0.0-rc3-x86_64-linux -O /usr/local/bin/opam + sudo chmod +x /usr/local/bin/opam ;; + osx) + sudo curl -sL https://github.com/ocaml/opam/releases/download/2.0.0-rc3/opam-2.0.0-rc3-x86_64-darwin -o /usr/local/bin/opam + sudo chmod +x /usr/local/bin/opam ;; + esac +} +install_ppa () { + ppa=$1 sudo add-apt-repository --yes ppa:${ppa} sudo apt-get update -qq if [ "${INSTALL_LOCAL:=0}" = 0 ] ; then @@ -96,6 +79,78 @@ install_on_linux () { else sudo apt-get install -y opam fi +} + +install_on_linux () { + case "$OCAML_VERSION,$OPAM_VERSION" in + 3.12,1.2.2) + install_ppa avsm/ocaml42+opam12 + OCAML_VERSION=4.02; OCAML_FULL_VERSION=3.12.1 ;; + 3.12,2.0.0) + install_opam2 + OCAML_VERSION=4.01; OCAML_FULL_VERSION=3.12.1 ;; + 4.00,1.2.2) + install_ppa avsm/ocaml42+opam12 + OCAML_VERSION=4.02; OCAML_FULL_VERSION=4.00.1 ;; + 4.00,2.0.0) + install_opam2 + OCAML_VERSION=4.01; OCAML_FULL_VERSION=4.00.1 ;; + 4.01,1.2.2) + install_ppa avsm/ocaml42+opam12 + OCAML_VERSION=4.02; OCAML_FULL_VERSION=4.01.0 ;; + 4.01,2.0.0) + install_opam2 + OCAML_FULL_VERSION=4.01.0 OPAM_SWITCH=${OPAM_SWITCH:-ocaml-system} ;; + 4.02,1.1.2) + install_ppa avsm/ocaml42+opam11 + OCAML_FULL_VERSION=4.02.3; OPAM_SWITCH=${OPAM_SWITCH:-system} ;; + 4.02,1.2.0) + install_ppa avsm/ocaml42+opam120 + OCAML_FULL_VERSION=4.02.3; OPAM_SWITCH=${OPAM_SWITCH:-system} ;; + 4.02,1.2.1) + install_ppa avsm/ocaml42+opam121 + OCAML_FULL_VERSION=4.02.3; OPAM_SWITCH=${OPAM_SWITCH:-system} ;; + 4.02,1.2.2) + install_ppa avsm/ocaml42+opam12 + OCAML_FULL_VERSION=4.02.3; OPAM_SWITCH=${OPAM_SWITCH:-system} ;; + 4.02,2.0.0) + install_opam2 + OCAML_VERSION=4.01; OCAML_FULL_VERSION=4.02.3 ;; + 4.03,1.2.2) + install_ppa avsm/ocaml42+opam12 + OCAML_VERSION=4.02; OCAML_FULL_VERSION=4.03.0 ;; + 4.03,2.0.0) + install_opam2 + OCAML_VERSION=4.01; OCAML_FULL_VERSION=4.03.0 ;; + 4.04,1.2.2) + install_ppa avsm/ocaml42+opam12 + OCAML_VERSION=4.02; OCAML_FULL_VERSION=4.04.2 ;; + 4.04,2.0.0) + install_opam2 + OCAML_VERSION=4.01; OCAML_FULL_VERSION=4.04.2 ;; + 4.05,1.2.2) + install_ppa avsm/ocaml42+opam12 + OCAML_VERSION=4.02; OCAML_FULL_VERSION=4.05.0 ;; + 4.05,2.0.0) + install_opam2 + OCAML_VERSION=4.01; OCAML_FULL_VERSION=4.05.0 ;; + 4.06,1.2.2) + install_ppa avsm/ocaml42+opam12 + OCAML_VERSION=4.02; OCAML_FULL_VERSION=4.06.1 ;; + 4.06,2.0.0) + install_opam2 + OCAML_VERSION=4.01; OCAML_FULL_VERSION=4.06.1 ;; + 4.07,1.2.2) + install_ppa avsm/ocaml42+opam12 + OCAML_VERSION=4.02; OCAML_FULL_VERSION=4.07.0 ;; + 4.07,2.0.0) + install_opam2 + OCAML_VERSION=4.01; OCAML_FULL_VERSION=4.07.0 ;; + *) echo "Unknown OCAML_VERSION=$OCAML_VERSION OPAM_VERSION=$OPAM_VERSION" + echo "(An unset OCAML_VERSION used to default to \"latest\", but you must now specify it." + echo "Try something like \"OCAML_VERSION=3.12\", \"OCAML_VERSION=4.07\", or see README-travis.md at https://github.com/ocaml/ocaml-ci-scripts )" + exit 1 ;; + esac TRUSTY="deb mirror://mirrors.ubuntu.com/mirrors.txt trusty main restricted universe" @@ -115,7 +170,7 @@ install_on_linux () { sudo apt-get -qq update fi - if [ "$INSTALL_LOCAL" != 0 ] ; then + if [ "${INSTALL_LOCAL:=0}" != 0 ] ; then echo -en "travis_fold:start:build.ocaml\r" echo "Building a local OCaml; this may take a few minutes..." wget "http://caml.inria.fr/pub/distrib/ocaml-${OCAML_FULL_VERSION%.*}/ocaml-$OCAML_FULL_VERSION.tar.gz" @@ -141,15 +196,28 @@ install_on_osx () { brew upgrade python || true case "$OCAML_VERSION,$OPAM_VERSION" in 3.12,1.2.2) OCAML_FULL_VERSION=3.12.1; brew install opam ;; + 3.12,2.0.0) OCAML_FULL_VERSION=3.12.1; install_opam2 ;; 4.00,1.2.2) OCAML_FULL_VERSION=4.00.1; brew install opam ;; + 4.00,2.0.0) OCAML_FULL_VERSION=4.00.1; install_opam2 ;; 4.01,1.2.2) OCAML_FULL_VERSION=4.01.0; brew install opam ;; + 4.01,2.0.0) OCAML_FULL_VERSION=4.01.0; install_opam2 ;; 4.02,1.2.2) OCAML_FULL_VERSION=4.02.3; brew install opam ;; - 4.02,1.3.0) OCAML_FULL_VERSION=4.02.3; brew install opam --HEAD ;; + 4.02,2.0.0) OCAML_FULL_VERSION=4.02.3; install_opam2 ;; 4.03,1.2.2) OCAML_FULL_VERSION=4.03.0; brew install opam ;; + 4.03,2.0.0) OCAML_FULL_VERSION=4.03.0; install_opam2 ;; 4.04,1.2.2) OCAML_FULL_VERSION=4.04.2; brew install opam ;; + 4.04,2.0.0) OCAML_FULL_VERSION=4.04.2; install_opam2 ;; 4.05,1.2.2) OCAML_FULL_VERSION=4.05.0; brew install opam ;; + 4.05,2.0.0) OCAML_FULL_VERSION=4.05.0; install_opam2 ;; 4.06,1.2.2) OCAML_FULL_VERSION=4.06.1; brew install opam ;; - 4.07,1.2.2) OCAML_FULL_VERSION=4.07.0; OPAM_SWITCH=${OPAM_SWITCH:-system}; brew install ocaml; brew install opam ;; + 4.06,2.0.0) OCAML_FULL_VERSION=4.06.1; install_opam2 ;; + 4.07,1.2.2) OCAML_FULL_VERSION=4.07.0; + OPAM_SWITCH=${OPAM_SWITCH:-system}; + brew install ocaml; brew install opam ;; + 4.07,2.0.0) OCAML_FULL_VERSION=4.07.0; + OPAM_SWITCH=${OPAM_SWITCH:-system}; + brew install ocaml; + install_opam2 ;; *) echo "Unknown OCAML_VERSION=$OCAML_VERSION OPAM_VERSION=$OPAM_VERSION" exit 1 ;; esac diff --git a/src/ci_opam.ml b/src/ci_opam.ml index 5bf88aa..598540a 100644 --- a/src/ci_opam.ml +++ b/src/ci_opam.ml @@ -60,6 +60,14 @@ let revdep_run = list (getenv_default "REVDEPS" "") (* run opam lint *) let opam_lint = fuzzy_bool_of_string (getenv_default "OPAM_LINT" "true") +(* opam version *) +let opam_version = + let raw = ?|> "opam --version" in + match if String.length raw <= 1 then '?' else raw.[0] with + | '2' -> `V2 + | '1' -> `V1 + | _ -> failwith (raw ^ ": invalid opam version") + (* other variables *) let extra_deps = list (getenv_default "EXTRA_DEPS" "") let pre_install_hook = getenv_default "PRE_INSTALL_HOOK" "" @@ -238,7 +246,9 @@ with_fold "Prepare" (fun () -> in List.iter pin pins; - (if opam_lint then ?|~ "opam lint %s" opam); + (if opam_lint then match opam_version with + | `V2 -> ?|~ "opam lint %s --warn=-21-32-48" opam + | _ -> ?|~ "opam lint %s" opam); ?|~ "opam pin add %s . -n" pkg; ?| "eval $(opam config env)"; ?| "opam install depext"; From 648487135e9e72525bfcf19e70d85a9c0fe71787 Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Wed, 18 Jul 2018 21:38:38 +0200 Subject: [PATCH 2/6] Always use --kind=path for local pins --- src/ci_opam.ml | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/ci_opam.ml b/src/ci_opam.ml index 598540a..c554fbe 100644 --- a/src/ci_opam.ml +++ b/src/ci_opam.ml @@ -82,9 +82,10 @@ let add_remote = let layer = ref 0 in fun remote -> ?|~ "opam remote add extra%d %s" !layer remote; incr layer -let pin pin = match pair pin with - | (pkg,None) -> ?|~ "opam pin add %s --dev-repo -n" pkg - | (pkg,Some url) -> ?|~ "opam pin add %s %s -n" pkg url +let pin = function + | pkg, None -> ?|~ "opam pin add %s --dev-repo -n" pkg + | pkg, Some "." -> ?|~ "opam pin add %s --kind=path . -n" pkg + | pkg, Some url -> ?|~ "opam pin add %s %s -n" pkg url let is_base pkg = match trim (?|> "opam show -f version %s" pkg) with @@ -215,6 +216,16 @@ let max_version package = in next_version (trim (?|> "opam show -f version %s" package)) +module Strings = Map.Make(String) + +let lint_pins pkg pins = + let pins = List.map pair pins in + let pkgs = + List.fold_left (fun acc (k, v) -> Strings.add k v acc) Strings.empty pins + in + let pkgs = Strings.add pkg (Some ".") pkgs in + Strings.fold (fun k v acc -> (k, v) :: acc) pkgs [] + ;; (* Go go go *) with_fold "Prepare" (fun () -> @@ -245,11 +256,11 @@ with_fold "Prepare" (fun () -> Format.ksprintf failwith "No opam file found for %s, aborting." pkg_name in - List.iter pin pins; (if opam_lint then match opam_version with | `V2 -> ?|~ "opam lint %s --warn=-21-32-48" opam | _ -> ?|~ "opam lint %s" opam); - ?|~ "opam pin add %s . -n" pkg; + let pins = lint_pins pkg pins in + List.iter pin pins; ?| "eval $(opam config env)"; ?| "opam install depext"; (* Install the external dependencies *) From e5dddd8628011b83134ee75f5429fc21378f0563 Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Tue, 17 Jul 2018 18:39:17 +0200 Subject: [PATCH 3/6] workaround a bug in `opam remove -a` in opam2~rc3 --- .travis-ocaml.sh | 2 +- .travis-opam.sh | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.travis-ocaml.sh b/.travis-ocaml.sh index 8e62b67..7f14e06 100644 --- a/.travis-ocaml.sh +++ b/.travis-ocaml.sh @@ -215,7 +215,7 @@ install_on_osx () { OPAM_SWITCH=${OPAM_SWITCH:-system}; brew install ocaml; brew install opam ;; 4.07,2.0.0) OCAML_FULL_VERSION=4.07.0; - OPAM_SWITCH=${OPAM_SWITCH:-system}; + OPAM_SWITCH=${OPAM_SWITCH:-ocaml-system}; brew install ocaml; install_opam2 ;; *) echo "Unknown OCAML_VERSION=$OCAML_VERSION OPAM_VERSION=$OPAM_VERSION" diff --git a/.travis-opam.sh b/.travis-opam.sh index b4d1961..2c9c60b 100644 --- a/.travis-opam.sh +++ b/.travis-opam.sh @@ -22,7 +22,11 @@ eval $(opam config env) opam depext -y conf-m4 opam pin add travis-opam https://github.com/${fork_user}/ocaml-ci-scripts.git#${fork_branch} cp ~/.opam/$(opam switch show)/bin/ci-opam ~/ -opam remove -a travis-opam + +# workaround a bug in opam 2.0~rc3 +# opam remove -a travis-opam +opam remove travis-opam conf-m4 dune jbuilder jsonm ocamlbuild ocamlfind result topkg uchar uutf + mv ~/ci-opam ~/.opam/$(opam switch show)/bin/ci-opam echo -en "travis_fold:end:prepare.ci\r" From 136d0235a0e14839dd452943e35769b212b01cb4 Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Wed, 18 Jul 2018 22:48:12 +0200 Subject: [PATCH 4/6] osx: by default do not install XQuartz --- .travis-ocaml.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis-ocaml.sh b/.travis-ocaml.sh index 7f14e06..17c6d41 100644 --- a/.travis-ocaml.sh +++ b/.travis-ocaml.sh @@ -44,7 +44,7 @@ UPDATE_GCC_BINUTILS=${UPDATE_GCC_BINUTILS:-"0"} UBUNTU_TRUSTY=${UBUNTU_TRUSTY:-"0"} # Install XQuartz on OSX -INSTALL_XQUARTZ=${INSTALL_XQUARTZ:-"true"} +INSTALL_XQUARTZ=${INSTALL_XQUARTZ:-"false"} install_opam2 () { case $TRAVIS_OS_NAME in From 3bb06270c92efc9f09d8f3ea013cff5235bc135c Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Thu, 19 Jul 2018 13:22:22 +0200 Subject: [PATCH 5/6] Update README --- README-travis.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/README-travis.md b/README-travis.md index fa2654c..bb1bac2 100644 --- a/README-travis.md +++ b/README-travis.md @@ -254,17 +254,14 @@ Configuration choices are passed to `mirage configure` via environment variables ### Changing the version of opam -```yaml - - [...] OPAM_VERSION="1.1.2" -``` +By default, the CI scripts are using the latest RC release of opam *2.0.0*. +To use a different version of opam, use: -By default, the latest stable version of opam will be used. the scripts supports -these version: +```yaml + - [...] OPAM_VERSION="1.2.2" + ``` -- `OPAM_VERSION=1.1.2` only when the OS is `unix` -- `OPAM_VERSION=1.2.0` only when the OS is `unix` -- `OPAM_VERSION=1.2.2` when the OS is either `unix` or `osx` (default) -- `OPAM_VERSION=1.3.0` only when the OS is `osx` +Supported versions are `2.0.0`, `1.2.2`, `1.2.0 and `1.1.2`. ### Testing on different OS @@ -278,6 +275,12 @@ os: - osx ``` +To enable XQuartz support on MacOS, use: + +```yaml + - [...] INSTALL_XQUARTZ=true +``` + ## Pushing OCamldoc docs to Github page, `.travis-docgen.sh` This relies on the existence of a `configure` script and `Makefile` such that From 1865414838f330f83ee7e91e54b64e0b1ce13ece Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Thu, 2 Aug 2018 12:14:15 +0200 Subject: [PATCH 6/6] use rc4 --- .travis-ocaml.sh | 4 ++-- .travis-opam.sh | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.travis-ocaml.sh b/.travis-ocaml.sh index 17c6d41..a18cb28 100644 --- a/.travis-ocaml.sh +++ b/.travis-ocaml.sh @@ -52,10 +52,10 @@ install_opam2 () { sudo add-apt-repository --yes ppa:ansible/bubblewrap sudo apt-get update -qq sudo apt-get install -y bubblewrap - sudo wget https://github.com/ocaml/opam/releases/download/2.0.0-rc3/opam-2.0.0-rc3-x86_64-linux -O /usr/local/bin/opam + sudo wget https://github.com/ocaml/opam/releases/download/2.0.0-rc4/opam-2.0.0-rc4-x86_64-linux -O /usr/local/bin/opam sudo chmod +x /usr/local/bin/opam ;; osx) - sudo curl -sL https://github.com/ocaml/opam/releases/download/2.0.0-rc3/opam-2.0.0-rc3-x86_64-darwin -o /usr/local/bin/opam + sudo curl -sL https://github.com/ocaml/opam/releases/download/2.0.0-rc4/opam-2.0.0-rc4-x86_64-darwin -o /usr/local/bin/opam sudo chmod +x /usr/local/bin/opam ;; esac } diff --git a/.travis-opam.sh b/.travis-opam.sh index 2c9c60b..160e427 100644 --- a/.travis-opam.sh +++ b/.travis-opam.sh @@ -23,9 +23,7 @@ opam depext -y conf-m4 opam pin add travis-opam https://github.com/${fork_user}/ocaml-ci-scripts.git#${fork_branch} cp ~/.opam/$(opam switch show)/bin/ci-opam ~/ -# workaround a bug in opam 2.0~rc3 -# opam remove -a travis-opam -opam remove travis-opam conf-m4 dune jbuilder jsonm ocamlbuild ocamlfind result topkg uchar uutf +opam remove -a travis-opam mv ~/ci-opam ~/.opam/$(opam switch show)/bin/ci-opam