mirage / mirage-www

Website infrastructure and content for mirage.io

Home Page:https://mirage.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

unikernel fails to build for non-unix targets

RyanGibb opened this issue · comments

File "duniverse/Zarith/dune", line 22, characters 12-16:
22 |  (libraries unix)
                 ^^^^
Error: Library "unix" in
/home/ryan/.opam/default/solo5-sysroot/lib/ocaml
is hidden (unsatisfied 'exist_if').
-> required by _build/solo5/duniverse/Zarith/discover.exe
-> required by _build/solo5/duniverse/Zarith/gmp.env
-> required by _build/solo5/duniverse/Zarith/Makefile
-> required by _build/solo5/duniverse/Zarith/libs.sexp
-> required by _build/solo5/duniverse/Zarith/zarith.cmxa
-> required by _build/solo5/mirage/main.exe
-> required by _build/solo5/mirage/www.hvt
-> required by _build/solo5/mirage/dist/www.hvt
-> required by alias mirage/dist/all (context solo5)
-> required by alias mirage/dist/default (context solo5)

This is caused by Zarith=1.12+dune depending on unix:
https://github.com/dune-universe/Zarith/blob/512da67bd11f41f7c51c846e971de7bcac3ab9b7/dune#L22

You shouldn't take the Zarith+dune version but the Zarith+dune+mirage1 version. What is your workflow? Did you invoke opam monorepo with --require-cross-compile?

Yes I've just realized this! I'm using nix to build mirage-www with this project: https://github.com/RyanGibb/hillingar. The problem was I wasn't using mirage-opam-overlays. This commit fixes the issue.