# Dependency cycle while boostrapping dune 3.0

**URL:** <https://discuss.ocaml.org/t/dependency-cycle-while-boostrapping-dune-3-0/9409>\
**Category:** Ecosystem\
**Tags:** dune\
**Created:** [February 24, 2022, 9:48pm UTC](https://discuss.ocaml.org/t/dependency-cycle-while-boostrapping-dune-3-0/9409 "2022-02-24T21:48:11Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![olafhering](https://avatars.discourse-cdn.com/v4/letter/o/a4c791/32.png) [@olafhering](https://discuss.ocaml.org/u/olafhering)\
**Post date:** [February 24, 2022, 9:48pm UTC](https://discuss.ocaml.org/t/dependency-cycle-while-boostrapping-dune-3-0/9409/1 "2022-02-24T21:48:11Z")

</div>

It seems dune 3.0 can not be bootstrapped anymore if there is just an ocaml compiler.

I’m running `ocaml configure.ml && ocaml bootstrap.ml`, then declare `./dune.exe` as `dune` by putting it first in `PATH`.

With [2.9](https://build.opensuse.org/package/show/openSUSE:Factory/ocaml-dune) the next step is to build everything with `dune build --for-release-of-packages=dune,dune-action-plugin,dune-build-info,dune-glob,dune-private-libs @install`. This works because there are no extra dependencies. `dune-configurator` is a separate package, because it depends on `csexp`.

With 3.0 this can not be done because things depend on “leaf” packages such as csexp and pp, which in turn require dune for building.

Is there a way to serialize the build of dune.git again?

---

<div class="post-metadata">

**Author:** ![kit-ty-kate](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/kit-ty-kate/32/5953_2.png) [@kit-ty-kate](https://discuss.ocaml.org/u/kit-ty-kate)\
**Post date:** [February 25, 2022, 2:33am UTC](https://discuss.ocaml.org/t/dependency-cycle-while-boostrapping-dune-3-0/9409/2 "2022-02-25T02:33:11Z")

</div>

You can see the steps done to build dune in opam with nothing but the ocaml compiler here:

> <https://github.com/ocaml/opam-repository/blob/3a74916d9a6166ce3217bdde98ee66aeb8a4911c/packages/dune/dune.3.0.2/opam#L38-L43>
