Build:
- 0
2026-11-12 08:25.23: New job: Build using linux-x86_64 in
[https://github.com/mirage/mirage-skeleton.git#refs/heads/dev (52abe5aedb1f19f6dd3a18dc9ad81c766f813ebc)]
OBuilder spec:
((from ocaml/opam:debian-13-ocaml-5.4@sha256:bcc0f77a2dea7ca724c3d4df27fc9525ff61ded89693741007d0285265d573fc)
(user (uid 1000) (gid 1000))
(workdir /home/opam)
(run (shell "sudo chown opam:opam /home/opam"))
(run (shell "sudo ln -f /usr/bin/opam-2.4 /usr/bin/opam && opam update"))
(run (network host)
(shell "opam repo add opam https://github.com/ocaml/opam-repository.git#c5cea2c5d8bca68557aa82a7e896a5204c7a34a8"))
(run (network host)
(shell "opam repo add mirage-dev https://github.com/mirage/mirage-dev.git#eb114ccf0dd4eeca6b4f06c5c7361c238eeca4fd"))
(run (cache (download-cache (target /home/opam/.opam/download-cache)))
(network host)
(shell "sudo apt-get update && opam install -y \"mirage>=4\""))
(copy (src .) (dst /src/))
(env MODE xen)
(workdir /src/)
(run (shell "opam exec -- make configure"))
(env MIRAGE_EXTRA_REPOS opam-overlays:https://github.com/dune-universe/opam-overlays.git#efd742d67b0d49b2d6f491ffbbf205ca42977a6e,mirage-opam-overlays:https://github.com/dune-universe/mirage-opam-overlays.git#eddcd1bc7e035392596b603d23dde67a88e6f6bc)
(run (network host)
(shell "opam exec -- make lock"))
(run (cache (download-cache (target /home/opam/.opam/download-cache)))
(network host)
(shell "sudo apt-get update && opam exec -- make depends"))
(run (shell "opam monorepo list -l mirage.opam.locked"))
(run (cache (download-cache (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam exec -- make pull"))
(env DUNE_CACHE enabled)
(env DUNE_CACHE_TRANSPORT direct)
(run (cache (dune-build-cache (target /home/opam/.cache/dune)))
(network host)
(shell "opam exec -- make build"))
)
2026-11-12 08:25.23: Using cache hint "mirage-ci-skeleton-debian-13-ocaml-5.4"
2026-11-12 08:25.23: Waiting for resource in pool OCluster
2026-11-12 09:45.46: Waiting for worker…
2026-11-12 10:25.49: Got resource from pool OCluster
Building on toxis.caelum.ci.dev
All commits already cached
HEAD is now at 52abe5a Merge pull request #421 from hannesm/mirage-411
(from ocaml/opam:debian-13-ocaml-5.4@sha256:bcc0f77a2dea7ca724c3d4df27fc9525ff61ded89693741007d0285265d573fc)
2026-11-12 10:26.01 ---> using "0a422bec9c7849fcfad17310cee57ee7f2dcc3da323cc842f37832240d163309" from cache
/: (user (uid 1000) (gid 1000))
/: (workdir /home/opam)
/home/opam: (run (shell "sudo chown opam:opam /home/opam"))
2026-11-12 10:26.01 ---> using "fb8406346dab49ba664abd2c277b28566742488c37c547cf80464b28deba1186" from cache
/home/opam: (run (shell "sudo ln -f /usr/bin/opam-2.4 /usr/bin/opam && opam update"))
This version of opam requires an update to the layout of /home/opam/.opam from version 2.1 to version 2.2, which can't be reverted.
You may want to back it up before going further.
[NOTE] The 'jobs' option was reset, its value was 1 and its new value will vary according to the current number of cores on your machine. You can restore the fixed value using:
opam option jobs=1 --global
Continue? [Y/n] y
Format upgrade done.
<><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><>
[default] no changes from git+file:///home/opam/opam-repository
2026-11-12 10:26.02 ---> using "14603f0069e32e9062315c7204895bc8aa2d021bc95d7c6a8cc6eefe537974c1" from cache
/home/opam: (run (network host)
(shell "opam repo add opam https://github.com/ocaml/opam-repository.git#c5cea2c5d8bca68557aa82a7e896a5204c7a34a8"))
[opam] Initialised
opam (at git+https://github.com/ocaml/opam-repository.git#c5cea2c5d8bca68557aa82a7e896a5204c7a34a8):
[WARNING] opam >= 2.5.2 includes important security fixes; please consider upgrading (https://opam.ocaml.org/doc/Install.html)
[NOTE] Repository opam has been added to the selections of switch 5.4 only.
Run `opam repository add opam --all-switches|--set-default' to use it in all existing switches, or in newly created switches, respectively.
2026-11-12 10:26.02 ---> using "edfc3038d5c3c2c367f8153c01eba29238ec54064dec6afd0ca5ff70b5e4523d" from cache
/home/opam: (run (network host)
(shell "opam repo add mirage-dev https://github.com/mirage/mirage-dev.git#eb114ccf0dd4eeca6b4f06c5c7361c238eeca4fd"))
[mirage-dev] Initialised
[NOTE] Repository mirage-dev has been added to the selections of switch 5.4 only.
Run `opam repository add mirage-dev --all-switches|--set-default' to use it in all existing switches, or in newly created switches, respectively.
2026-11-12 10:26.02 ---> using "16546cffdeebbc5709d21fd9c62c1ded0ef8fa0be85f42b6768353c0050583f5" from cache
/home/opam: (run (cache (download-cache (target /home/opam/.opam/download-cache)))
(network host)
(shell "sudo apt-get update && opam install -y \"mirage>=4\""))
Hit:1 http://deb.debian.org/debian trixie InRelease
Get:2 http://deb.debian.org/debian trixie-updates InRelease [47.3 kB]
Get:3 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
Get:4 http://deb.debian.org/debian trixie-updates/main amd64 Packages.diff/Index [8361 B]
Get:5 http://deb.debian.org/debian trixie-updates/main amd64 Packages T-2026-11-05-1401.10-F-2026-10-22-2004.53.pdiff [1053 B]
Get:5 http://deb.debian.org/debian trixie-updates/main amd64 Packages T-2026-11-05-1401.10-F-2026-10-22-2004.53.pdiff [1053 B]
Get:6 http://deb.debian.org/debian-security trixie-security/main amd64 Packages [302 kB]
Fetched 402 kB in 0s (1483 kB/s)
Reading package lists...
The following actions will be performed:
=== install 27 packages
- install angstrom 0.16.1 [required by emile, uri]
- install astring 0.8.5 [required by mirage]
- install base64 3.5.2 [required by emile]
- install bigstringaf 0.10.0 [required by emile]
- install bos 0.3.0 [required by mirage]
- install cmdliner 2.1.1 [required by mirage]
- install csexp 1.5.2 [required by dune-configurator]
- install domain-name 0.5.0 [required by ipaddr]
- install dune 3.24.2 [required by mirage]
- install dune-configurator 3.24.2 [required by bigstringaf]
- install emile 1.1 [required by mirage]
- install fmt 0.11.0 [required by mirage]
- install fpath 0.7.3 [required by mirage]
- install ipaddr 5.6.2 [required by mirage]
- install logs 0.10.0 [required by mirage]
- install macaddr 5.6.2 [required by ipaddr]
- install mirage 4.11.2
- install ocaml-syntax-shims 1.0.0 [required by angstrom]
- install ocamlbuild 0.16.1 [required by astring, bos]
- install ocamlfind 1.9.8 [required by astring, bos]
- install opam-monorepo 0.5.0 [required by mirage]
- install pecu 0.7 [required by emile]
- install rresult 0.7.0 [required by mirage]
- install stringext 1.6.0 [required by uri]
- install topkg 1.1.1 [required by astring, bos]
- install uri 4.4.0 [required by mirage]
- install uutf 1.0.4 [required by emile]
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved angstrom.0.16.1 (cached)
-> retrieved astring.0.8.5 (cached)
-> retrieved base64.3.5.2 (cached)
-> retrieved bigstringaf.0.10.0 (cached)
-> retrieved csexp.1.5.2 (cached)
-> retrieved bos.0.3.0 (cached)
-> retrieved cmdliner.2.1.1 (cached)
-> retrieved domain-name.0.5.0 (cached)
-> retrieved emile.1.1 (cached)
-> retrieved fmt.0.11.0 (cached)
-> retrieved fpath.0.7.3 (cached)
-> retrieved logs.0.10.0 (cached)
-> retrieved ipaddr.5.6.2, macaddr.5.6.2 (cached)
-> retrieved mirage.4.11.2 (cached)
-> retrieved ocaml-syntax-shims.1.0.0 (cached)
-> retrieved ocamlbuild.0.16.1 (cached)
-> retrieved ocamlfind.1.9.8 (cached)
-> retrieved pecu.0.7 (cached)
-> retrieved rresult.0.7.0 (cached)
-> retrieved stringext.1.6.0 (cached)
-> retrieved topkg.1.1.1 (cached)
-> retrieved uri.4.4.0 (cached)
-> retrieved uutf.1.0.4 (cached)
-> retrieved dune.3.24.2, dune-configurator.3.24.2 (cached)
-> retrieved opam-monorepo.0.5.0 (cached)
-> installed cmdliner.2.1.1
-> installed ocamlbuild.0.16.1
-> installed ocamlfind.1.9.8
-> installed topkg.1.1.1
-> installed rresult.0.7.0
-> installed fmt.0.11.0
-> installed uutf.1.0.4
-> installed astring.0.8.5
-> installed logs.0.10.0
-> installed fpath.0.7.3
-> installed bos.0.3.0
-> installed dune.3.24.2
-> installed base64.3.5.2
-> installed csexp.1.5.2
-> installed domain-name.0.5.0
-> installed macaddr.5.6.2
-> installed ocaml-syntax-shims.1.0.0
-> installed pecu.0.7
-> installed stringext.1.6.0
-> installed ipaddr.5.6.2
-> installed dune-configurator.3.24.2
-> installed bigstringaf.0.10.0
-> installed angstrom.0.16.1
-> installed emile.1.1
-> installed uri.4.4.0
-> installed opam-monorepo.0.5.0
-> installed mirage.4.11.2
Done.
# To update the current shell environment, run: eval $(opam env)
2026-11-12 10:26.02 ---> using "a745c446d93fec6372961cc247d985a65199cb99419fe5e4d4630b21e613ba54" from cache
/home/opam: (copy (src .) (dst /src/))
2026-11-12 10:26.02 ---> using "ee993e671599887c9805f4aa5cfb3d06bb80f038788727137399f6666c209b39" from cache
/home/opam: (env MODE xen)
/home/opam: (workdir /src/)
/src/: (run (shell "opam exec -- make configure"))
mirage configure -f tutorial/noop/config.ml -t xen
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f tutorial/hello/config.ml -t xen
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f tutorial/hello-key/config.ml -t xen
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f tutorial/local-library/config.ml -t xen
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f tutorial/lwt/echo_server/config.ml -t xen
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f tutorial/lwt/heads1/config.ml -t xen
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f tutorial/lwt/heads2/config.ml -t xen
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f tutorial/lwt/timeout1/config.ml -t xen
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f tutorial/lwt/timeout2/config.ml -t xen
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f tutorial/app_info/config.ml -t xen
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f device-usage/clock/config.ml -t xen
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f device-usage/conduit_server/config.ml -t xen
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f device-usage/http-fetch/config.ml -t xen
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f device-usage/kv_ro/config.ml -t xen
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f device-usage/littlefs/config.ml -t xen
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f device-usage/network/config.ml -t xen
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f device-usage/ping6/config.ml -t xen
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f device-usage/disk-lottery/config.ml -t xen
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f applications/dhcp/config.ml -t xen
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f applications/http/config.ml -t xen
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f applications/dns/config.ml -t xen
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f applications/crypto/config.ml -t xen
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f applications/static_website_tls/config.ml -t xen
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
dd if=/dev/zero of=disk.img count=100000
100000+0 records in
100000+0 records out
51200000 bytes (51 MB, 49 MiB) copied, 0.342701 s, 149 MB/s
mirage configure -f device-usage/block/config.ml -t xen
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
2026-11-12 10:26.52 ---> saved as "4242f84db306be6a241a90f51d96c698c32c1dfdfab4c1b4f8ab5e43ecc53a36"
/src/: (env MIRAGE_EXTRA_REPOS opam-overlays:https://github.com/dune-universe/opam-overlays.git#efd742d67b0d49b2d6f491ffbbf205ca42977a6e,mirage-opam-overlays:https://github.com/dune-universe/mirage-opam-overlays.git#eddcd1bc7e035392596b603d23dde67a88e6f6bc)
/src/: (run (network host)
(shell "opam exec -- make lock"))
[opam-overlays] Initialised
[NOTE] Repository opam-overlays has been added to the selections of switch 5.4 only.
Run `opam repository add opam-overlays --all-switches|--set-default' to use it in all existing switches, or in newly created switches, respectively.
[mirage-opam-overlays] Initialised
[NOTE] Repository mirage-opam-overlays has been added to the selections of switch 5.4 only.
Run `opam repository add mirage-opam-overlays --all-switches|--set-default' to use it in all existing switches, or in newly created switches, respectively.
env OPAMVAR_monorepo="opam-monorepo" opam monorepo lock --recurse-opam noop-xen hello-xen hello-key-xen local-library-xen echo_server-xen heads1-xen heads2-xen timeout1-xen timeout2-xen echo_server-xen app-info-xen speaking_clock-xen conduit_server-xen http-fetch-xen kv_ro-xen elittlefs-xen network-xen ping-xen lottery-xen dhcp-xen minipaf-xen resolve-xen crypto-test-xen https-xen block_test-xen --build-only --ocaml-version 5.4.1 -l ./mirage.opam.locked
==> Using 24 locally scanned packages as the targets.
This version of opam requires an update to the layout of /home/opam/.opam from version 2.2 to version 2.6, which can't be reverted.
You may want to back it up before going further.
[ERROR] Write lock attempt in safe mode
opam-monorepo: internal error, uncaught exception:
OpamStd.OpamSys.Exit(15)
Raised at OpamStd.OpamSys.exit in file "duniverse/opam/src/core/opamStd.ml", line 1316, characters 15-29
Called from OpamSystem.flock_update in file "duniverse/opam/src/core/opamSystem.ml", line 1142, characters 19-45
Called from OpamFilename.with_flock_upgrade in file "duniverse/opam/src/core/opamFilename.ml", line 549, characters 4-48
Called from OpamGlobalState.load_config in file "duniverse/opam/src/state/opamGlobalState.ml", line 38, characters 4-68
Called from OpamGlobalState.load in file "duniverse/opam/src/state/opamGlobalState.ml", line 80, characters 8-46
Called from OpamGlobalState.with_ in file "duniverse/opam/src/state/opamGlobalState.ml", line 214, characters 11-20
Called from Duniverse_cli__Lock.run in file "cli/lock.ml", lines 592-594, characters 4-51
Called from Cmdliner_term.app.(fun) in file "duniverse/cmdliner/src/cmdliner_term.ml", line 24, characters 19-24
Called from Cmdliner_term.app.(fun) in file "duniverse/cmdliner/src/cmdliner_term.ml", line 22, characters 12-19
Called from Cmdliner_eval.run_parser in file "duniverse/cmdliner/src/cmdliner_eval.ml", line 35, characters 37-44
make: *** [Makefile:68: lock] Error 125
"/usr/bin/env" "bash" "-c" "opam exec -- make lock" failed with exit status 2
2026-11-12 10:27.19: Job failed: Failed: Build failed