Dune 1.11.1 compilation failed

I just tried to rune an opam upgrade and ran into the following error:



<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><>  🐫
[ERROR] The compilation of dune failed at "/Users/basus/.opam/opam-init/hooks/sandbox.sh build ocaml bootstrap.ml".

#=== ERROR while compiling dune.1.11.1 ========================================#
# context     2.0.5 | macos/x86_64 | ocaml-base-compiler.4.08.1 | https://opam.ocaml.org/#8be4290a
# path        ~/.opam/4.08.1/.opam-switch/build/dune.1.11.1
# command     ~/.opam/opam-init/hooks/sandbox.sh build ocaml bootstrap.ml
# exit-code   65
# env-file    ~/.opam/log/dune-16651-0399cc.env
# output-file ~/.opam/log/dune-16651-0399cc.out
### output ###
# /Users/basus/.opam/opam-init/hooks/sandbox.sh: line 8: cd: /Users/basus/.ccache: No such file or directory
# sandbox-exec: empty subpath pattern



<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><>  🐫
β”Œβ”€ The following actions failed
β”‚ Ξ» build dune 1.11.1
└─
╢─ No changes have been performed

There is no .ccache in my home directory, but there is an .cache with opam stuff in it. Is this a typo somewhere?

This is a problem with opam, not dune. opam will try to mount the $HOME/.ccache directory if ccache is installed https://github.com/ocaml/opam/blob/master/src/state/shellscripts/sandbox_exec.sh#L34-L44

To fix this you can either

  1. Uninstall ccache
  2. mkdir ~/.ccache

Ahh ok. mkdir ~/.ccache seems to have worked.

I think it would be worth filing an issue upstream so that opam checks if the directory exists before trying to mount it.

Just to avoid duplication of work, instead of opening an issue I have submitted a PR to fix it: https://github.com/ocaml/opam/pull/3957