Build:
  1. 0
2026-01-07 21:27.26: New job: docker build {
                                             "commit": "a03f11ba6b5a40af393f30208fd913df4c4a8ba2",
                                             "dockerfile": {
                                               "file": "Dockerfile"
                                             },
                                             "docker_context": null,
                                             "squash": false,
                                             "buildx": false,
                                             "build_args": [
                                               "--build-arg", "TARGET=xen",
                                               "--build-arg",
                                               "EXTRA_FLAGS=--tls=true"
                                             ],
                                             "path": null
                                           }
2026-01-07 21:27.26: Checking out commit a03f11ba. To reproduce:
                       git clone --recursive "https://github.com/mirage/mirage-www.git" && cd "mirage-www" && git fetch origin "refs/pull/859/head" && git reset --hard a03f11ba
2026-01-07 21:27.26: Exec: "cp" "-a" "--" "/var/lib/ocurrent/var/git/mirage-www.git-c1609aad5612d6b73e1c5be1a480108ce3363f2b7727366290103fad03b019f2/.git" 
                           "/tmp/git-checkout2054b371"
2026-01-07 21:27.27: Exec: "git" "-C" "/tmp/git-checkout2054b371" "submodule" 
                           "deinit" "--force" "--all"
could not create empty submodule directory data/wiki/files/mirage-skeletonSubmodule 'data/wiki/files/mirage-skeleton' (https://github.com/mirage/mirage-skeleton) unregistered for path 'data/wiki/files/mirage-skeleton'
2026-01-07 21:27.27: Exec: "git" "-C" "/tmp/git-checkout2054b371" "reset" 
                           "--hard" "-q" "a03f11ba6b5a40af393f30208fd913df4c4a8ba2"
2026-01-07 21:27.27: Exec: "git" "-c" "protocol.file.allow=always" "-C" 
                           "/tmp/git-checkout2054b371" "submodule" "update" 
                           "--recursive" "--init" "--no-fetch"
Submodule 'data/wiki/files/mirage-skeleton' (https://github.com/mirage/mirage-skeleton) registered for path 'data/wiki/files/mirage-skeleton'
Submodule path 'data/wiki/files/mirage-skeleton': checked out 'd51f6582fbc39882f61de45ed22759ab19def1fc'
2026-01-07 21:27.27: Exec: "docker" "build" "--pull" "--build-arg" "TARGET=xen" 
                           "--build-arg" "EXTRA_FLAGS=--tls=true" "-f" 
                           "/tmp/git-checkout2054b371/Dockerfile" "--iidfile" 
                           "/tmp/git-checkout2054b371/docker-iid" "--" 
                           "/tmp/git-checkout2054b371"
#0 building with "default" instance using docker driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile:
#1 transferring dockerfile: 949B done
#1 DONE 1.8s

#2 [internal] load metadata for docker.io/ocaml/opam:debian-12-ocaml-4.14
#2 DONE 0.7s

#3 [internal] load .dockerignore
#3 transferring context: 64B done
#3 DONE 0.0s

#4 [ 1/16] FROM docker.io/ocaml/opam:debian-12-ocaml-4.14@sha256:f9803e04143923e5b59749d5be12fc63919456028d4af208942c966666033913
#4 DONE 0.0s

#5 [internal] load build context
#5 transferring context: 26.05MB 0.3s done
#5 DONE 0.4s

#6 [ 4/16] WORKDIR /home/opam/www
#6 CACHED

#7 [ 5/16] RUN sudo ln -f /usr/bin/opam-2.1 /usr/bin/opam
#7 CACHED

#8 [ 2/16] RUN sudo apt-get update && sudo apt-get install autoconf automake -y --no-install-recommends
#8 CACHED

#9 [ 6/16] RUN cd ~/opam-repository && git pull origin master && git reset --hard 2dee2fe30df966714e056f8af164fe0ed7648a63
#9 CACHED

#10 [ 3/16] RUN mkdir -p /home/opam/www/mirage
#10 CACHED

#11 [ 8/16] RUN opam install 'mirage>=4.5.0'
#11 CACHED

#12 [ 7/16] RUN opam update
#12 CACHED

#13 [ 9/16] COPY --chown=opam:root mirage/config.ml /home/opam/www/mirage/
#13 CACHED

#14 [10/16] COPY --chown=opam:root mirageio.opam /home/opam/www/
#14 DONE 0.2s

#15 [11/16] RUN opam exec -- mirage configure -f mirage/config.ml -t xen --tls=true
#15 0.866 Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
#15 DONE 1.0s

#16 [12/16] RUN opam exec -- make depend
#16 0.678 using overlay repository mirage: [opam-overlays, mirage-overlays] 
#16 1.781 [opam-overlays] Initialised
#16 2.239 [NOTE] Repository opam-overlays has been added to the selections of switch 4.14 only.
#16 2.239        Run `opam repository add opam-overlays --all-switches|--set-default' to use it in all existing switches, or in newly created switches, respectively.
#16 2.239 
#16 2.804 [mirage-overlays] Initialised
#16 3.083 [NOTE] Repository mirage-overlays has been added to the selections of switch 4.14 only.
#16 3.083        Run `opam repository add mirage-overlays --all-switches|--set-default' to use it in all existing switches, or in newly created switches, respectively.
#16 3.083 
#16 3.090  ↳ generate lockfile for monorepo dependencies
#16 3.104 ==> Using 1 locally scanned package as the target.
#16 86.69 ==> Found 179 opam dependencies for the target package.
#16 86.69 ==> Querying opam database for their metadata and Dune compatibility.
#16 87.50 ==> Calculating exact pins for each of them.
#16 87.82 ==> Wrote lockfile with 116 entries to mirage/mirage/www-xen.opam.locked. You can now run opam monorepo pull to fetch their sources.
#16 87.88 removing overlay repository [opam-overlays, mirage-overlays]
#16 87.89 Repositories removed from the selections of switch 4.14. Use '--all' to forget about them altogether.
#16 87.90 Repositories removed from the selections of switch 4.14. Use '--all' to forget about them altogether.
#16 87.90 The lock file has been generated. Run 'make pull' to retrieve the sources, or 'make install-switch' to install the host dependencies.
#16 87.90  ↳ opam install switch dependencies
#16 93.30 The following actions will be performed:
#16 93.30   - install conf-libseccomp 1
#16 93.30   - install ocaml-src       4.14.2
#16 93.30   - install conf-which      1
#16 93.30   - install solo5           0.10.0
#16 93.30   - install ocaml-solo5     0.8.5
#16 93.30 ===== 5 to install =====
#16 93.30 
#16 93.30 The following system packages will first need to be installed:
#16 93.30     libseccomp-dev
#16 93.30 
#16 93.30 <><> Handling external dependencies <><><><><><><><><><><><><><><><><><><><><><>
#16 93.30 Let opam run your package manager to install the required system packages?
#16 93.30 (answer 'n' for other options) [Y/n] y
#16 93.30 + /usr/bin/sudo "apt-get" "install" "-qq" "-yy" "libseccomp-dev"
#16 94.48 - debconf: delaying package configuration, since apt-utils is not installed
#16 94.48 - Selecting previously unselected package libseccomp-dev:amd64.
#16 94.48 - (Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 19110 files and directories currently installed.)
#16 94.48 - Preparing to unpack .../libseccomp-dev_2.5.4-1+deb12u1_amd64.deb ...
#16 94.48 - Unpacking libseccomp-dev:amd64 (2.5.4-1+deb12u1) ...
#16 94.48 - Setting up libseccomp-dev:amd64 (2.5.4-1+deb12u1) ...
#16 94.48 
#16 94.48 <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
#16 96.57 -> retrieved ocaml-src.4.14.2  (cached)
#16 96.74 -> installed conf-libseccomp.1
#16 96.74 -> installed conf-which.1
#16 96.77 -> retrieved ocaml-solo5.0.8.5  (https://opam.ocaml.org/cache)
#16 98.00 -> retrieved solo5.0.10.0  (https://opam.ocaml.org/cache)
#16 98.32 -> installed ocaml-src.4.14.2
#16 110.8 -> installed solo5.0.10.0
#16 194.5 -> installed ocaml-solo5.0.8.5
#16 194.7 Done.
#16 195.6  ↳ install external dependencies for monorepo
#16 195.6 ==> Using lockfile mirage/mirage/www-xen.opam.locked
#16 196.0 + /usr/bin/sudo "apt-get" "install" "-qq" "-yy" "libev-dev" "libgmp-dev" "libonig-dev" "libssl-dev"
#16 197.0 - debconf: delaying package configuration, since apt-utils is not installed
#16 197.7 - Selecting previously unselected package libev4:amd64.
#16 197.7 - (Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 19152 files and directories currently installed.)
#16 197.7 - Preparing to unpack .../0-libev4_1%3a4.33-1_amd64.deb ...
#16 197.7 - Unpacking libev4:amd64 (1:4.33-1) ...
#16 197.7 - Selecting previously unselected package libev-dev:amd64.
#16 197.7 - Preparing to unpack .../1-libev-dev_1%3a4.33-1_amd64.deb ...
#16 197.7 - Unpacking libev-dev:amd64 (1:4.33-1) ...
#16 197.7 - Selecting previously unselected package libgmpxx4ldbl:amd64.
#16 197.7 - Preparing to unpack .../2-libgmpxx4ldbl_2%3a6.2.1+dfsg1-1.1_amd64.deb ...
#16 197.7 - Unpacking libgmpxx4ldbl:amd64 (2:6.2.1+dfsg1-1.1) ...
#16 197.7 - Selecting previously unselected package libgmp-dev:amd64.
#16 197.7 - Preparing to unpack .../3-libgmp-dev_2%3a6.2.1+dfsg1-1.1_amd64.deb ...
#16 197.7 - Unpacking libgmp-dev:amd64 (2:6.2.1+dfsg1-1.1) ...
#16 197.7 - Selecting previously unselected package libonig5:amd64.
#16 197.7 - Preparing to unpack .../4-libonig5_6.9.8-1_amd64.deb ...
#16 197.7 - Unpacking libonig5:amd64 (6.9.8-1) ...
#16 197.7 - Selecting previously unselected package libonig-dev.
#16 197.7 - Preparing to unpack .../5-libonig-dev_6.9.8-1_amd64.deb ...
#16 197.7 - Unpacking libonig-dev (6.9.8-1) ...
#16 197.7 - Selecting previously unselected package libssl-dev:amd64.
#16 197.7 - Preparing to unpack .../6-libssl-dev_3.0.17-1~deb12u3_amd64.deb ...
#16 197.7 - Unpacking libssl-dev:amd64 (3.0.17-1~deb12u3) ...
#16 197.7 - Setting up libev4:amd64 (1:4.33-1) ...
#16 197.7 - Setting up libgmpxx4ldbl:amd64 (2:6.2.1+dfsg1-1.1) ...
#16 197.7 - Setting up libssl-dev:amd64 (3.0.17-1~deb12u3) ...
#16 197.7 - Setting up libev-dev:amd64 (1:4.33-1) ...
#16 197.7 - Setting up libonig5:amd64 (6.9.8-1) ...
#16 197.7 - Setting up libgmp-dev:amd64 (2:6.2.1+dfsg1-1.1) ...
#16 197.7 - Setting up libonig-dev (6.9.8-1) ...
#16 197.7 - Processing triggers for libc-bin (2.36-9+deb12u13) ...
#16 197.7 The dependencies have been installed. Run 'make build' to build the unikernel.
#16 197.7  ↳ fetch monorepo dependencies in the duniverse folder
#16 197.7 ==> Using lockfile mirage/mirage/www-xen.opam.locked
#16 208.8 Successfully pulled 116/116 repositories
#16 208.8 The sources have been pulled to the duniverse folder. Run 'make build' to build the unikernel.
#16 DONE 209.9s

#17 [13/16] COPY --chown=opam:root . /home/opam/www
#17 DONE 0.3s

#18 [14/16] RUN opam exec -- mirage configure -f mirage/config.ml -t xen --tls=true
#18 1.039 Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
#18 DONE 1.1s

#19 [15/16] RUN opam exec -- dune build mirage/ --profile release
#19 7.380 ocamlfind -toolchain solo5 ocamlopt -ccopt "-I ./include/ -O2 -std=c99 -Wall -D__XEN_INTERFACE_VERSION__=__XEN_LATEST_INTERFACE_VERSION__"   -c -o bmap.o bmap.c
#19 7.380 ocamlfind -toolchain solo5 ocamlopt -ccopt "-I ./include/ -O2 -std=c99 -Wall -D__XEN_INTERFACE_VERSION__=__XEN_LATEST_INTERFACE_VERSION__"   -c -o clock_stubs.o clock_stubs.c
#19 7.380 ocamlfind -toolchain solo5 ocamlopt -ccopt "-I ./include/ -O2 -std=c99 -Wall -D__XEN_INTERFACE_VERSION__=__XEN_LATEST_INTERFACE_VERSION__"   -c -o evtchn.o evtchn.c
#19 7.380 ocamlfind -toolchain solo5 ocamlopt -ccopt "-I ./include/ -O2 -std=c99 -Wall -D__XEN_INTERFACE_VERSION__=__XEN_LATEST_INTERFACE_VERSION__"   -c -o gnttab.o gnttab.c
#19 7.380 ocamlfind -toolchain solo5 ocamlopt -ccopt "-I ./include/ -O2 -std=c99 -Wall -D__XEN_INTERFACE_VERSION__=__XEN_LATEST_INTERFACE_VERSION__"   -c -o main.o main.c
#19 7.380 ar r libmirage-xen_bindings.a bmap.o clock_stubs.o evtchn.o gnttab.o main.o
#19 7.380 ar: creating libmirage-xen_bindings.a
#19 16.16 Browserslist: caniuse-lite is outdated. Please run:
#19 16.16   npx update-browserslist-db@latest
#19 16.16   Why you should do it regularly: https://github.com/browserslist/update-db#readme
#19 16.16 
#19 16.16 Rebuilding...
#19 16.16 
#19 16.16 Done in 1895ms.
#19 19.11 /usr/bin/ld: warning: amd64.o: missing .note.GNU-stack section implies executable stack
#19 19.11 /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
#19 51.49 emitter.c: In function 'yaml_emitter_write_plain_scalar':
#19 51.49 emitter.c:28:6: warning: value computed is not used [-Wunused-value]
#19 51.49    28 |      && ((emitter->line_break == YAML_CR_BREAK ?                                \
#19 51.49       |      ^~
#19 51.49 emitter.c:56:11: note: in expansion of macro 'PUT_BREAK'
#19 51.49    56 |          (PUT_BREAK(emitter),                                                   \
#19 51.49       |           ^~~~~~~~~
#19 51.49 emitter.c:1962:18: note: in expansion of macro 'WRITE_BREAK'
#19 51.49  1962 |             if (!WRITE_BREAK(emitter, string)) return 0;
#19 51.49       |                  ^~~~~~~~~~~
#19 51.49 emitter.c: In function 'yaml_emitter_write_single_quoted_scalar':
#19 51.49 emitter.c:28:6: warning: value computed is not used [-Wunused-value]
#19 51.49    28 |      && ((emitter->line_break == YAML_CR_BREAK ?                                \
#19 51.49       |      ^~
#19 51.49 emitter.c:56:11: note: in expansion of macro 'PUT_BREAK'
#19 51.49    56 |          (PUT_BREAK(emitter),                                                   \
#19 51.49       |           ^~~~~~~~~
#19 51.49 emitter.c:2019:18: note: in expansion of macro 'WRITE_BREAK'
#19 51.49  2019 |             if (!WRITE_BREAK(emitter, string)) return 0;
#19 51.49       |                  ^~~~~~~~~~~
#19 51.49 emitter.c: In function 'yaml_emitter_write_literal_scalar':
#19 51.49 emitter.c:28:6: warning: value computed is not used [-Wunused-value]
#19 51.49    28 |      && ((emitter->line_break == YAML_CR_BREAK ?                                \
#19 51.49       |      ^~
#19 51.49 emitter.c:56:11: note: in expansion of macro 'PUT_BREAK'
#19 51.49    56 |          (PUT_BREAK(emitter),                                                   \
#19 51.49       |           ^~~~~~~~~
#19 51.49 emitter.c:2285:18: note: in expansion of macro 'WRITE_BREAK'
#19 51.49  2285 |             if (!WRITE_BREAK(emitter, string)) return 0;
#19 51.49       |                  ^~~~~~~~~~~
#19 51.49 emitter.c: In function 'yaml_emitter_write_folded_scalar':
#19 51.49 emitter.c:28:6: warning: value computed is not used [-Wunused-value]
#19 51.49    28 |      && ((emitter->line_break == YAML_CR_BREAK ?                                \
#19 51.49       |      ^~
#19 51.49 emitter.c:56:11: note: in expansion of macro 'PUT_BREAK'
#19 51.49    56 |          (PUT_BREAK(emitter),                                                   \
#19 51.49       |           ^~~~~~~~~
#19 51.49 emitter.c:2334:18: note: in expansion of macro 'WRITE_BREAK'
#19 51.49  2334 |             if (!WRITE_BREAK(emitter, string)) return 0;
#19 51.49       |                  ^~~~~~~~~~~
#19 86.09 File "data/gen_data.ml", line 48, characters 15-34:
#19 86.09 48 |             |> Hilite.Md.transform
#19 86.09                     ^^^^^^^^^^^^^^^^^^^
#19 86.09 Error: Unbound module Hilite.Md
#19 102.1 configure: WARNING: using cross tools not prefixed with host triplet
#19 102.1 configure: WARNING: cannot check for properly working vsnprintf when cross compiling, will assume it's ok
#19 102.3 binary ocaml: found in /home/opam/.opam/4.14/bin
#19 102.3 binary ocamlc: found in /home/opam/.opam/4.14/bin
#19 102.3 binary ocamldep: found in /home/opam/.opam/4.14/bin
#19 102.3 binary ocamlmklib: found in /home/opam/.opam/4.14/bin
#19 102.3 binary ocamldoc: found in /home/opam/.opam/4.14/bin
#19 102.3 binary x86_64-solo5-none-static-cc: found in /home/opam/.opam/4.14/bin
#19 102.3 binary ocamlopt: found in /home/opam/.opam/4.14/bin
#19 102.3 checking compilation with  -I/home/opam/www/_build/solo5/mirage/duniverse/Zarith/../../../../install/solo5/lib/gmp/: working
#19 102.3 include caml/mlvalues.h: found
#19 102.3 library dynlink.cmxa: found
#19 102.3 binary ocamlfind: found in /home/opam/.opam/4.14/bin
#19 102.3 OCaml's word size is 64
#19 102.3 package gmp: found
#19 102.3 OCaml supports -bin-annot to produce documentation
#19 102.3 
#19 102.3 detected configuration:
#19 102.3 
#19 102.3   native-code:          yes
#19 102.3   dynamic linking:      yes
#19 102.3   defines:              -DHAS_GMP 
#19 102.3   includes:             -I/home/opam/.opam/4.14/solo5-sysroot/lib/ocaml -I/home/opam/www/_build/solo5/mirage/duniverse/Zarith/../../../../install/solo5/lib/gmp/ 
#19 102.3   libraries:             -lgmp 
#19 102.3   linker options:       -L/home/opam/www/_build/solo5/mirage/duniverse/Zarith/../../../../install/solo5/lib/gmp/
#19 102.3   C options:            -I/home/opam/www/_build/solo5/mirage/duniverse/Zarith/../../../../install/solo5/lib/gmp/
#19 102.3   installation path:    /home/opam/.opam/4.14/lib
#19 102.3   installation method   findlib
#19 102.3 
#19 102.3 configuration successful!
#19 102.3 now type "make" to build
#19 102.3 then type "make install" or "sudo make install" to install
#19 ERROR: process "/bin/sh -c opam exec -- dune build mirage/ --profile release" did not complete successfully: exit code: 1
------
 > [15/16] RUN opam exec -- dune build mirage/ --profile release:
102.3   includes:             -I/home/opam/.opam/4.14/solo5-sysroot/lib/ocaml -I/home/opam/www/_build/solo5/mirage/duniverse/Zarith/../../../../install/solo5/lib/gmp/ 
102.3   libraries:             -lgmp 
102.3   linker options:       -L/home/opam/www/_build/solo5/mirage/duniverse/Zarith/../../../../install/solo5/lib/gmp/
102.3   C options:            -I/home/opam/www/_build/solo5/mirage/duniverse/Zarith/../../../../install/solo5/lib/gmp/
102.3   installation path:    /home/opam/.opam/4.14/lib
102.3   installation method   findlib
102.3 
102.3 configuration successful!
102.3 now type "make" to build
102.3 then type "make install" or "sudo make install" to install
------
Dockerfile:17
--------------------
  15 |     COPY --chown=opam:root . /home/opam/www
  16 |     RUN opam exec -- mirage configure -f mirage/config.ml -t $TARGET $EXTRA_FLAGS
  17 | >>> RUN opam exec -- dune build mirage/ --profile release
  18 |     RUN if [ $TARGET = hvt ]; then sudo cp mirage/dist/www.$TARGET /unikernel.$TARGET; fi
  19 |     
--------------------
ERROR: failed to solve: process "/bin/sh -c opam exec -- dune build mirage/ --profile release" did not complete successfully: exit code: 1
2026-01-07 21:32.47: Job failed: Docker build exited with status 1