Build:
  1. 0
2026-01-16 10:32.46: New job: Build using linux-x86_64 in
                                [https://github.com/mirage/mirage-skeleton.git#refs/pull/418/head (8382633e9753bcc0d7bccf55fe10a1844a3aa93f)]

OBuilder spec:

((from ocaml/opam:debian-13-ocaml-5.3)
 (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#c6bb7c00ad7f23f02d71f9c47548f1e9b1169b4c"))
 (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 unikraft-qemu)
 (workdir /src/)
 (run (shell "opam exec -- make configure"))
 (env MIRAGE_EXTRA_REPOS opam-overlays:https://github.com/dune-universe/opam-overlays.git#12731a6f86d7c452a94c72106fa9d3327988582d,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-01-16 10:32.46: Using cache hint "mirage-ci-skeleton-debian-13-ocaml-5.3"
2026-01-16 10:32.46: Waiting for resource in pool OCluster
2026-01-16 10:32.46: Waiting for worker…
2026-01-16 10:32.47: Got resource from pool OCluster
Building on eumache
All commits already cached
HEAD is now at 8382633 Pass dhcp to resolver_dns

(from ocaml/opam:debian-13-ocaml-5.3)
Unable to find image 'ocaml/opam:debian-13-ocaml-5.3' locally
debian-13-ocaml-5.3: Pulling from ocaml/opam
281b80c799de: Already exists
00fc4ac50d5e: Already exists
7dc48a314bea: Already exists
8f654937f9e3: Already exists
1240f6fbe8cc: Already exists
f77f967230a1: Already exists
1b4ac3d9a8c2: Already exists
27b61414175d: Already exists
26fabf9b20e0: Already exists
b4426e2c299b: Already exists
9c12df827e83: Already exists
9a5608646906: Already exists
2a83342677ae: Already exists
5cbaedd36b85: Already exists
750a9830ac77: Already exists
400560080670: Already exists
bad13195b6fa: Already exists
b51fe78b498e: Already exists
185ce27e889b: Already exists
8a483dc1e759: Already exists
4de9d6d54a13: Already exists
0c268a22c8a0: Already exists
4f4fb700ef54: Already exists
e61881bc2621: Already exists
c864a4af1ff0: Already exists
42d012f62ad9: Already exists
ccb2ed78fa2e: Already exists
84c22434b2f6: Already exists
18c972827b32: Already exists
4c6dcdff9e80: Already exists
280bf9d33ca6: Already exists
51ce8c29753c: Already exists
5ac80663b9d2: Already exists
93f877c915e3: Already exists
8573ccc6bb69: Already exists
d26192cd75ec: Already exists
c7cce15b715e: Already exists
c998ca7b5976: Already exists
3cd1b61d806b: Already exists
19a26ec5319e: Already exists
b1f6813045f3: Already exists
2fb6fee07095: Already exists
d7a8a6f23075: Already exists
d1eb163b4fac: Already exists
862adb69508b: Pulling fs layer
80bf7dfc8836: Pulling fs layer
9408e03f4099: Pulling fs layer
1744c179ef4e: Pulling fs layer
1744c179ef4e: Waiting
80bf7dfc8836: Verifying Checksum
80bf7dfc8836: Download complete
9408e03f4099: Verifying Checksum
9408e03f4099: Download complete
1744c179ef4e: Download complete
862adb69508b: Verifying Checksum
862adb69508b: Download complete
862adb69508b: Pull complete
80bf7dfc8836: Pull complete
9408e03f4099: Pull complete
1744c179ef4e: Pull complete
Digest: sha256:ff60e164511dee24caf563cdc0d244b9d979aea1b49b2bbf710529af63a6171c
Status: Downloaded newer image for ocaml/opam:debian-13-ocaml-5.3
2026-01-16 10:33.30 ---> saved as "348716d62ad55d1c2ba7493d00b0882cc64fc042d724a06a1599e8ba58d890e2"

/: (user (uid 1000) (gid 1000))

/: (workdir /home/opam)

/home/opam: (run (shell "sudo chown opam:opam /home/opam"))
2026-01-16 10:33.30 ---> saved as "24883da7c3bfb9b4beffcac7267b86c1389006a753d78f6b386a3c4fd0e70458"

/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.0 to version 2.2, which can't be reverted.
You may want to back it up before going further.

Continue? [Y/n] y
Format upgrade done.

<><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised
2026-01-16 10:33.55 ---> saved as "e0d08704d663585a0eeeaa1114187809c41cb285481ac9f5195ea2884586d4b3"

/home/opam: (run (network host)
                 (shell "opam repo add opam https://github.com/ocaml/opam-repository.git#c6bb7c00ad7f23f02d71f9c47548f1e9b1169b4c"))
[opam] Initialised
[NOTE] Repository opam has been added to the selections of switch 5.3 only.
       Run `opam repository add opam --all-switches|--set-default' to use it in all existing switches, or in newly created switches, respectively.

2026-01-16 10:34.07 ---> saved as "5c46256a30d57cb47582f350cbf2d20ccd2e46e0c3ce153e994a739f0bde6357"

/home/opam: (run (cache (download-cache (target /home/opam/.opam/download-cache)))
                 (network host)
                 (shell "sudo apt-get update && opam install -y \"mirage>=4\""))
Get:1 http://deb.debian.org/debian trixie InRelease [140 kB]
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/main amd64 Packages [9670 kB]
Get:5 http://deb.debian.org/debian-security trixie-security/main amd64 Packages [95.9 kB]
Fetched 9997 kB in 1s (8361 kB/s)
Reading package lists...
The following actions will be performed:
=== install 28 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.2.1  [required by mirage]
  - install cmdliner           2.1.0  [required by mirage]
  - install conf-pkg-config    4      [required by opam-monorepo]
  - install csexp              1.5.2  [required by dune-configurator]
  - install domain-name        0.5.0  [required by ipaddr]
  - install dune               3.20.2 [required by mirage]
  - install dune-configurator  3.20.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.1  [required by mirage]
  - install logs               0.10.0 [required by mirage]
  - install macaddr            5.6.1  [required by ipaddr]
  - install mirage             4.10.4
  - 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.4.3  [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]

The following system packages will first need to be installed:
    pkg-config

<><> Handling external dependencies <><><><><><><><><><><><><><><><><><><><><><>

opam believes some required external dependencies are missing. opam can:
> 1. Run apt-get to install them (may need root/sudo access)
  2. Display the recommended apt-get command and wait while you run it manually (e.g. in another terminal)
  3. Continue anyway, and, upon success, permanently register that this external dependency is present, but not detectable
  4. Abort the installation

[1/2/3/4] 1

+ /usr/bin/sudo "apt-get" "install" "-qq" "-yy" "pkg-config"
- Selecting previously unselected package libpkgconf3:amd64.
- (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 ... 20653 files and directories currently installed.)
- Preparing to unpack .../libpkgconf3_1.8.1-4_amd64.deb ...
- Unpacking libpkgconf3:amd64 (1.8.1-4) ...
- Selecting previously unselected package pkgconf-bin.
- Preparing to unpack .../pkgconf-bin_1.8.1-4_amd64.deb ...
- Unpacking pkgconf-bin (1.8.1-4) ...
- Selecting previously unselected package pkgconf:amd64.
- Preparing to unpack .../pkgconf_1.8.1-4_amd64.deb ...
- Unpacking pkgconf:amd64 (1.8.1-4) ...
- Selecting previously unselected package pkg-config:amd64.
- Preparing to unpack .../pkg-config_1.8.1-4_amd64.deb ...
- Unpacking pkg-config:amd64 (1.8.1-4) ...
- Setting up libpkgconf3:amd64 (1.8.1-4) ...
- Setting up pkgconf-bin (1.8.1-4) ...
- Setting up pkgconf:amd64 (1.8.1-4) ...
- Setting up pkg-config:amd64 (1.8.1-4) ...
- Processing triggers for libc-bin (2.41-12) ...

<><> 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)
-> installed conf-pkg-config.4
-> retrieved bos.0.2.1  (cached)
-> retrieved cmdliner.2.1.0  (cached)
-> retrieved csexp.1.5.2  (cached)
-> retrieved domain-name.0.5.0  (cached)
-> retrieved fmt.0.11.0  (cached)
-> retrieved emile.1.1  (cached)
-> retrieved fpath.0.7.3  (cached)
-> retrieved ipaddr.5.6.1, macaddr.5.6.1  (cached)
-> retrieved logs.0.10.0  (cached)
-> retrieved ocaml-syntax-shims.1.0.0  (cached)
-> retrieved mirage.4.10.4  (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.20.2, dune-configurator.3.20.2  (cached)
-> retrieved opam-monorepo.0.4.3  (cached)
-> installed cmdliner.2.1.0
-> installed ocamlbuild.0.16.1
-> installed ocamlfind.1.9.8
-> installed topkg.1.1.1
-> installed rresult.0.7.0
-> installed uutf.1.0.4
-> installed fmt.0.11.0
-> installed astring.0.8.5
-> installed logs.0.10.0
-> installed fpath.0.7.3
-> installed bos.0.2.1
-> installed dune.3.20.2
-> installed base64.3.5.2
-> installed csexp.1.5.2
-> installed domain-name.0.5.0
-> installed macaddr.5.6.1
-> installed ocaml-syntax-shims.1.0.0
-> installed pecu.0.7
-> installed stringext.1.6.0
-> installed ipaddr.5.6.1
-> installed dune-configurator.3.20.2
-> installed bigstringaf.0.10.0
-> installed angstrom.0.16.1
-> installed emile.1.1
-> installed uri.4.4.0
-> installed opam-monorepo.0.4.3
-> installed mirage.4.10.4
Done.
# To update the current shell environment, run: eval $(opam env)
2026-01-16 10:35.07 ---> saved as "30c98f04a10902c405b0fe22881dc5410fc27b3c5124d56c173c8f98b834d8b4"

/home/opam: (copy (src .) (dst /src/))
2026-01-16 10:35.07 ---> saved as "fdd240b7e2debbce4da55b765249c2ce1a7af8b4a64b82f62d13b1317b5cf9a5"

/home/opam: (env MODE unikraft-qemu)

/home/opam: (workdir /src/)

/src/: (run (shell "opam exec -- make configure"))
mirage configure -f tutorial/noop/config.ml -t unikraft-qemu 
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 unikraft-qemu 
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 unikraft-qemu 
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 unikraft-qemu 
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 unikraft-qemu 
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 unikraft-qemu 
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 unikraft-qemu 
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 unikraft-qemu 
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 unikraft-qemu 
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 unikraft-qemu 
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 unikraft-qemu 
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 unikraft-qemu 
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 unikraft-qemu 
File "device-usage/http-fetch/config.ml", line 9, characters 22-40:
9 |   let dhcp_requests = make_dhcp_requests () in
                          ^^^^^^^^^^^^^^^^^^
Error: Unbound value "make_dhcp_requests"
run ['dune' 'build' 'device-usage/http-fetch/config.exe' '--root' '.'
     '--workspace' 'device-usage/http-fetch/mirage/dune-workspace.config']: exited with 1
make: *** [Makefile:60: device-usage/http-fetch-configure] Error 1
"/usr/bin/env" "bash" "-c" "opam exec -- make configure" failed with exit status 2
2026-01-16 10:35.15: Job failed: Failed: Build failed