(for PR #29582)

2026-03-25 13:13.25: New job: test obuild.0.1.11 with ocaml-compiler.5.4.0~alpha1, using opam dev
                              from https://github.com/ocaml/opam-repository.git#refs/pull/29582/head (fa5fb3a6a806e832e4c7791145889a6bbe8b64ef)
                              on debian-13-ocaml-5.4/amd64

To reproduce locally:

cd $(mktemp -d)
git clone --recursive "https://github.com/ocaml/opam-repository.git" && cd "opam-repository" && git fetch origin "refs/pull/29582/head" && git reset --hard fa5fb3a6
git fetch origin master
git merge --no-edit 2f93e9d4614d6376ed929fc2cee7c59cb9d5833b
cat > ../Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:debian-13-ocaml-5.4@sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6
USER 1000:1000
WORKDIR /home/opam
RUN sudo ln -f /usr/bin/opam-dev /usr/bin/opam
RUN opam init --reinit -ni
RUN opam option solver=builtin-0install && opam config report
ENV OPAMDOWNLOADJOBS="1"
ENV OPAMERRLOGLEN="0"
ENV OPAMPRECISETRACKING="1"
ENV CI="true"
ENV OPAM_REPO_CI="true"
RUN rm -rf opam-repository/
COPY --chown=1000:1000 . opam-repository/
RUN opam repository set-url --strict default opam-repository/
RUN opam update --depexts || true
RUN opam pin add -k version -yn ocaml-compiler.5.4.0~alpha1 5.4.0~alpha1
RUN opam reinstall --update-invariant ocaml-compiler.5.4.0~alpha1; \
    res=$?; \
    test "$res" != 31 && exit "$res"; \
    export OPAMCLI=2.0; \
    build_dir=$(opam var prefix)/.opam-switch/build; \
    failed=$(ls "$build_dir"); \
    partial_fails=""; \
    for pkg in $failed; do \
    if opam show -f x-ci-accept-failures: "$pkg" | grep -qF "\"debian-13\""; then \
    echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
    fi; \
    test "$pkg" != 'ocaml-compiler.5.4.0~alpha1' && partial_fails="$partial_fails $pkg"; \
    done; \
    test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}"; \
    exit 1
RUN opam reinstall obuild.0.1.11; \
    res=$?; \
    test "$res" != 31 && exit "$res"; \
    export OPAMCLI=2.0; \
    build_dir=$(opam var prefix)/.opam-switch/build; \
    failed=$(ls "$build_dir"); \
    partial_fails=""; \
    for pkg in $failed; do \
    if opam show -f x-ci-accept-failures: "$pkg" | grep -qF "\"debian-13\""; then \
    echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
    fi; \
    test "$pkg" != 'obuild.0.1.11' && partial_fails="$partial_fails $pkg"; \
    done; \
    test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}"; \
    exit 1
RUN (opam reinstall --with-test obuild.0.1.11) || true
RUN opam reinstall --with-test --verbose obuild.0.1.11; \
    res=$?; \
    test "$res" != 31 && exit "$res"; \
    export OPAMCLI=2.0; \
    build_dir=$(opam var prefix)/.opam-switch/build; \
    failed=$(ls "$build_dir"); \
    partial_fails=""; \
    for pkg in $failed; do \
    if opam show -f x-ci-accept-failures: "$pkg" | grep -qF "\"debian-13\""; then \
    echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
    fi; \
    test "$pkg" != 'obuild.0.1.11' && partial_fails="$partial_fails $pkg"; \
    done; \
    test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}"; \
    exit 1

END-OF-DOCKERFILE
docker build -f ../Dockerfile .

2026-03-25 13:13.25: Using cache hint "ocaml/opam:debian-13-ocaml-5.4@sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6-ocaml-compiler.5.4.0~alpha1-obuild.0.1.11-fa5fb3a6a806e832e4c7791145889a6bbe8b64ef"
2026-03-25 13:13.25: Using OBuilder spec:
((from ocaml/opam:debian-13-ocaml-5.4@sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6)
 (user (uid 1000) (gid 1000))
 (workdir /home/opam)
 (run (shell "sudo ln -f /usr/bin/opam-dev /usr/bin/opam"))
 (run (network host)
      (shell "opam init --reinit --config .opamrc-sandbox -ni"))
 (run (shell "opam option solver=builtin-0install && opam config report"))
 (env OPAMDOWNLOADJOBS 1)
 (env OPAMERRLOGLEN 0)
 (env OPAMPRECISETRACKING 1)
 (env CI true)
 (env OPAM_REPO_CI true)
 (run (shell "rm -rf opam-repository/"))
 (copy (src .) (dst opam-repository/))
 (run (shell "opam repository set-url --strict default opam-repository/"))
 (run (network host)
      (shell "opam update --depexts || true"))
 (run (shell "opam pin add -k version -yn ocaml-compiler.5.4.0~alpha1 5.4.0~alpha1"))
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell  "opam reinstall --update-invariant ocaml-compiler.5.4.0~alpha1;\
             \n        res=$?;\
             \n        test \"$res\" != 31 && exit \"$res\";\
             \n        export OPAMCLI=2.0;\
             \n        build_dir=$(opam var prefix)/.opam-switch/build;\
             \n        failed=$(ls \"$build_dir\");\
             \n        partial_fails=\"\";\
             \n        for pkg in $failed; do\
             \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
             \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
             \n          fi;\
             \n          test \"$pkg\" != 'ocaml-compiler.5.4.0~alpha1' && partial_fails=\"$partial_fails $pkg\";\
             \n        done;\
             \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
             \n        exit 1"))
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell  "opam reinstall obuild.0.1.11;\
             \n        res=$?;\
             \n        test \"$res\" != 31 && exit \"$res\";\
             \n        export OPAMCLI=2.0;\
             \n        build_dir=$(opam var prefix)/.opam-switch/build;\
             \n        failed=$(ls \"$build_dir\");\
             \n        partial_fails=\"\";\
             \n        for pkg in $failed; do\
             \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
             \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
             \n          fi;\
             \n          test \"$pkg\" != 'obuild.0.1.11' && partial_fails=\"$partial_fails $pkg\";\
             \n        done;\
             \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
             \n        exit 1"))
 (run (network host)
      (shell "(opam reinstall --with-test obuild.0.1.11) || true"))
 (run (shell  "opam reinstall --with-test --verbose obuild.0.1.11;\
             \n        res=$?;\
             \n        test \"$res\" != 31 && exit \"$res\";\
             \n        export OPAMCLI=2.0;\
             \n        build_dir=$(opam var prefix)/.opam-switch/build;\
             \n        failed=$(ls \"$build_dir\");\
             \n        partial_fails=\"\";\
             \n        for pkg in $failed; do\
             \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
             \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
             \n          fi;\
             \n          test \"$pkg\" != 'obuild.0.1.11' && partial_fails=\"$partial_fails $pkg\";\
             \n        done;\
             \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
             \n        exit 1"))
)

2026-03-25 13:13.25: Waiting for resource in pool OCluster
2026-03-25 16:15.24: Waiting for worker…
2026-03-25 16:17.41: Got resource from pool OCluster
Building on eumache.caelum.ci.dev
All commits already cached
Updating files:  80% (14828/18520)
Updating files:  81% (15002/18520)
Updating files:  82% (15187/18520)
Updating files:  83% (15372/18520)
Updating files:  84% (15557/18520)
Updating files:  85% (15742/18520)
Updating files:  86% (15928/18520)
Updating files:  87% (16113/18520)
Updating files:  88% (16298/18520)
Updating files:  89% (16483/18520)
Updating files:  90% (16668/18520)
Updating files:  91% (16854/18520)
Updating files:  92% (17039/18520)
Updating files:  93% (17224/18520)
Updating files:  94% (17409/18520)
Updating files:  95% (17594/18520)
Updating files:  96% (17780/18520)
Updating files:  97% (17965/18520)
Updating files:  98% (18150/18520)
Updating files:  99% (18335/18520)
Updating files: 100% (18520/18520)
Updating files: 100% (18520/18520), done.
HEAD is now at 2f93e9d461 Merge pull request #29592 from dinosaure/release-miou-v0.5.5
Merge made by the 'ort' strategy.
 packages/ocaml-compiler/ocaml-compiler.5.3.0/opam      |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.3/opam        |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.4.0/opam      |  5 ++++-
 .../ocaml-compiler/ocaml-compiler.5.4.0~alpha1/opam    |  5 ++++-
 .../ocaml-compiler/ocaml-compiler.5.4.0~beta1/opam     |  5 ++++-
 .../ocaml-compiler/ocaml-compiler.5.4.0~beta2/opam     |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.4.0~rc1/opam  |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.4.1/opam      |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.4/opam        |  5 ++++-
 .../ocaml-compiler/ocaml-compiler.5.5.0~alpha1/opam    |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.5/opam        |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.6/opam        |  5 ++++-
 packages/ocaml-option-llvm/ocaml-option-llvm.1/opam    | 18 ++++++++++++++++++
 .../ocaml-options-vanilla/ocaml-options-vanilla.1/opam |  1 +
 packages/ocaml-variants/ocaml-variants.5.2.0+msvc/opam |  2 ++
 15 files changed, 69 insertions(+), 12 deletions(-)
 create mode 100644 packages/ocaml-option-llvm/ocaml-option-llvm.1/opam

(from ocaml/opam:debian-13-ocaml-5.4@sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6)
Unable to find image 'ocaml/opam:debian-13-ocaml-5.4@sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6' locally
docker.io/ocaml/opam@sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6: Pulling from ocaml/opam
866771c43bf5: Already exists
1e49bea09367: Already exists
e793768537e6: Already exists
ed323d3d481a: Already exists
7df34a5cd5f1: Already exists
fd712d3eb935: Already exists
4b9fb8c99118: Already exists
9d9a01948b94: Already exists
0f1514f90b32: Already exists
e1ec5a753447: Already exists
03cc323e2f71: Already exists
c09c08ea9749: Already exists
b36b619f8e6b: Already exists
195344ca5274: Already exists
228ee78582a6: Already exists
504bde1c25b3: Already exists
9d8b1356c89f: Already exists
9d8b1356c89f: Already exists
568fb6dda155: Already exists
c499c9198aea: Already exists
048e5e358118: Already exists
871ca48eb45d: Already exists
4f4fb700ef54: Already exists
a5a2568b9df9: Already exists
068cf3106ac8: Already exists
559f54ec9b29: Already exists
798ffd96fde5: Already exists
e9a891bf80d7: Already exists
d720cfe12674: Already exists
c81c932f4a91: Already exists
79f24fa3bb11: Already exists
8c1debcd8c20: Already exists
1bb2cfea7250: Already exists
2b3d3ca75e4c: Already exists
557cacaf263c: Already exists
d10483022eef: Already exists
7b62a90d8223: Already exists
28ce8ea66e72: Already exists
d975909ea717: Already exists
5c215c69c247: Already exists
e7c082452a54: Already exists
f6cbd774d654: Already exists
b40777a84cca: Already exists
7bb5edb9c889: Already exists
020670bcefab: Already exists
46df05d0db83: Already exists
45bde7b38933: Already exists
b4d63fa01ada: Already exists
Digest: sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6
Status: Downloaded newer image for ocaml/opam@sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6
2026-03-25 16:17.45 ---> using "41eea30e3f639c18d8cf57c309ec76919ec7b2398036f7e41744cbce59a133d3" from cache

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

/: (workdir /home/opam)

/home/opam: (run (shell "sudo ln -f /usr/bin/opam-dev /usr/bin/opam"))
2026-03-25 16:17.45 ---> using "4ad7f430d684c40cedc651267e0edf890c044fe4e624255de377c471b4526bac" from cache

/home/opam: (run (network host)
                 (shell "opam init --reinit --config .opamrc-sandbox -ni"))
Configuring from /home/opam/.opamrc-sandbox, then /home/opam/.opamrc, and finally from built-in defaults.
Checking for available remotes: rsync and local, git.
  - you won't be able to use mercurial repositories unless you install the hg command on your system.
  - you won't be able to use darcs repositories unless you install the darcs command on your system.

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 repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised
2026-03-25 16:17.45 ---> using "71fa58e52457bf6a7eac317c6a6ef1e2bdf53e533a1e4fd04b90c9349347e038" from cache

/home/opam: (run (shell "opam option solver=builtin-0install && opam config report"))
Set to 'builtin-0install' the field solver in global configuration
# opam config report
# opam-version         2.5.0
# self-upgrade         no
# system               arch=x86_64 os=linux os-distribution=debian os-version=13
# solver               builtin-0install
# install-criteria     -changed,-count[avoid-version,solution]
# upgrade-criteria     -count[avoid-version,solution]
# jobs                 71
# repositories         1 (version-controlled)
# pinned               1 (version)
# current-switch       5.4
# invariant            ["ocaml-base-compiler" {= "5.4.0"}]
# compiler-packages    ocaml-base-compiler.5.4.0, ocaml-compiler.5.4.0, ocaml-options-vanilla.1
# ocaml:native         true
# ocaml:native-tools   true
# ocaml:native-dynlink true
# ocaml:stubsdir       /home/opam/.opam/5.4/lib/ocaml/stublibs:/home/opam/.opam/5.4/lib/ocaml
# ocaml:preinstalled   false
# ocaml:compiler       5.4.0
2026-03-25 16:17.45 ---> using "ed86081cb38ca125a920162bfe6a4bb7b1c27c6973c917551687c83cf44dbfdf" from cache

/home/opam: (env OPAMDOWNLOADJOBS 1)

/home/opam: (env OPAMERRLOGLEN 0)

/home/opam: (env OPAMPRECISETRACKING 1)

/home/opam: (env CI true)

/home/opam: (env OPAM_REPO_CI true)

/home/opam: (run (shell "rm -rf opam-repository/"))
2026-03-25 16:17.45 ---> using "04a48515eea40c32b96da0c71328b4bba0edb66eed83d4f78554b39097cf1f25" from cache

/home/opam: (copy (src .) (dst opam-repository/))
2026-03-25 16:17.47 ---> using "034191995d824300f355cbba1072d6e5fe6d815701f24eb84d82c75009d73829" from cache

/home/opam: (run (shell "opam repository set-url --strict default opam-repository/"))
[default] Initialised
2026-03-25 16:17.47 ---> using "8232259ea36ea8848dc29ae49703acf145fd27b40f3ebd8fb785db7f8da1b9d4" from cache

/home/opam: (run (network host)
                 (shell "opam update --depexts || true"))
+ /usr/bin/sudo "apt-get" "update"
- 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 [9671 kB]
- Get:5 http://deb.debian.org/debian-security trixie-security/main amd64 Packages [114 kB]
- Fetched 10.0 MB in 1s (6968 kB/s)
- Reading package lists...
- 
2026-03-25 16:17.47 ---> using "a75782a571df4fc8f8933e94c681af881015ee87cdd4c652f8ae9af1d8cfad37" from cache

/home/opam: (run (shell "opam pin add -k version -yn ocaml-compiler.5.4.0~alpha1 5.4.0~alpha1"))
ocaml-compiler is now pinned to version 5.4.0~alpha1
2026-03-25 16:17.47 ---> using "e88d50778e741ddee9b34c84a56e5e9e4639d3fa2f3e012374704cbfbb53ef0f" from cache

/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
                 (network host)
                 (shell  "opam reinstall --update-invariant ocaml-compiler.5.4.0~alpha1;\
                        \n        res=$?;\
                        \n        test \"$res\" != 31 && exit \"$res\";\
                        \n        export OPAMCLI=2.0;\
                        \n        build_dir=$(opam var prefix)/.opam-switch/build;\
                        \n        failed=$(ls \"$build_dir\");\
                        \n        partial_fails=\"\";\
                        \n        for pkg in $failed; do\
                        \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
                        \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
                        \n          fi;\
                        \n          test \"$pkg\" != 'ocaml-compiler.5.4.0~alpha1' && partial_fails=\"$partial_fails $pkg\";\
                        \n        done;\
                        \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
                        \n        exit 1"))
ocaml-compiler.5.4.0~alpha1 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== remove 1 package
  - remove    ocaml-base-compiler 5.4.0 (pinned)                 [conflicts with ocaml-compiler]
=== downgrade 1 package
  - downgrade ocaml-compiler      5.4.0 to 5.4.0~alpha1 (pinned)
=== recompile 6 packages
  - recompile base-domains        base                           [uses ocaml]
  - recompile base-effects        base                           [uses ocaml]
  - recompile base-nnp            base                           [uses base-domains]
  - recompile ocaml               5.4.0                          [uses ocaml-base-compiler]
  - recompile ocaml-config        3                              [uses ocaml-base-compiler]
  - recompile opam-depext         1.2.3                          [uses ocaml]
=== install 1 package
  - install   ocaml-variants      5.4.0~alpha1+options           [required by ocaml]

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved ocaml-compiler.5.4.0~alpha1  (cached)
-> retrieved ocaml-config.3  (cached)
-> retrieved opam-depext.1.2.3  (cached)
-> removed   base-effects.base
-> removed   base-nnp.base
-> removed   base-domains.base
-> removed   opam-depext.1.2.3
-> removed   ocaml.5.4.0
-> removed   ocaml-config.3
-> removed   ocaml-base-compiler.5.4.0
-> removed   ocaml-compiler.5.4.0
-> installed ocaml-compiler.5.4.0~alpha1
-> installed ocaml-variants.5.4.0~alpha1+options
-> installed ocaml-config.3
-> installed ocaml.5.4.0
-> installed base-domains.base
-> installed base-effects.base
-> installed base-nnp.base
-> installed opam-depext.1.2.3
[NOTE] Switch invariant was updated to ["ocaml-variants" {= "5.4.0~alpha1+options"}]
       Use `opam switch set-invariant' to change it.
Done.

<><> opam-depext.1.2.3 installed successfully <><><><><><><><><><><><><><><><><>
=> opam-depext is unnecessary when used with opam >= 2.1. Please use opam install directly instead
# To update the current shell environment, run: eval $(opam env)
2026-03-25 16:17.47 ---> using "b7d43dc4936243f5436b930db356d86affbfebfa395eb0b37eb16d2b855a3853" from cache

/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
                 (network host)
                 (shell  "opam reinstall obuild.0.1.11;\
                        \n        res=$?;\
                        \n        test \"$res\" != 31 && exit \"$res\";\
                        \n        export OPAMCLI=2.0;\
                        \n        build_dir=$(opam var prefix)/.opam-switch/build;\
                        \n        failed=$(ls \"$build_dir\");\
                        \n        partial_fails=\"\";\
                        \n        for pkg in $failed; do\
                        \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
                        \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
                        \n          fi;\
                        \n          test \"$pkg\" != 'obuild.0.1.11' && partial_fails=\"$partial_fails $pkg\";\
                        \n        done;\
                        \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
                        \n        exit 1"))
obuild.0.1.11 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 2 packages
  - install obuild    0.1.11
  - install ocamlfind 1.9.8  [required by obuild]

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved obuild.0.1.11  (cached)
-> retrieved ocamlfind.1.9.8  (cached)
-> installed ocamlfind.1.9.8
-> installed obuild.0.1.11
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-25 16:18.10 ---> saved as "696035218984b4d50272ff1248da3823caed0142f783dabe2ed61df642c1b7f2"

/home/opam: (run (network host)
                 (shell "(opam reinstall --with-test obuild.0.1.11) || true"))
The following actions will be performed:
=== recompile 1 package
  - recompile obuild 0.1.11

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved obuild.0.1.11  (https://opam.ocaml.org/cache)
-> removed   obuild.0.1.11
-> installed obuild.0.1.11
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-25 16:18.29 ---> saved as "3ed8b9b1a5443ef593ff90aa43f204a19827e400f4683520e1ffbf912c52ebfe"

/home/opam: (run (shell  "opam reinstall --with-test --verbose obuild.0.1.11;\
                        \n        res=$?;\
                        \n        test \"$res\" != 31 && exit \"$res\";\
                        \n        export OPAMCLI=2.0;\
                        \n        build_dir=$(opam var prefix)/.opam-switch/build;\
                        \n        failed=$(ls \"$build_dir\");\
                        \n        partial_fails=\"\";\
                        \n        for pkg in $failed; do\
                        \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
                        \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
                        \n          fi;\
                        \n          test \"$pkg\" != 'obuild.0.1.11' && partial_fails=\"$partial_fails $pkg\";\
                        \n        done;\
                        \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
                        \n        exit 1"))
The following actions will be performed:
=== recompile 1 package
  - recompile obuild 0.1.11

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
Processing  1/4: [obuild.0.1.11: extract]
-> retrieved obuild.0.1.11  (cached)
Processing  2/4: [obuild: ./bootstrap]
+ /home/opam/.opam/opam-init/hooks/sandbox.sh "build" "./bootstrap" (CWD=/home/opam/.opam/5.4/.opam-switch/build/obuild.0.1.11)
- 5.4.0~alpha1
- Using compat403.ml
- COMPILING compat
- COMPILING fugue
- COMPILING filepath
- COMPILING filesystem
- BUILDING library Ext.cmo
- COMPILING types
- COMPILING gconf
- COMPILING filetype
- COMPILING dag
- COMPILING libname
- COMPILING pp
- COMPILING expr
- File "expr.ml", lines 129-131, characters 20-33:
- 129 | ....................match (string_split ':' v ~limit:2) with
- 130 |         [ _ ] -> ("", v)
- 131 |       | [ p1; rest] -> (p1, rest)...
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
-   Here is an example of a case that is not matched: _::rest::_::_
- 
- File "expr.ml", lines 132-134, characters 23-35:
- 132 | .......................match (string_split '-' rest ~limit:2) with
- 133 |         [ _ ] -> (p1, rest, "")
- 134 |       | [ p2 ; p3 ] -> (p1, p2, p3)...
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
-   Here is an example of a case that is not matched: _::p3::_::_
- COMPILING utils
- File "utils.ml", line 70, characters 23-73:
- 70 |            try let _ = List.find (fun n -> Filesystem.exists (n p)) names in true
-                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Warning 5 [ignored-partial-application]: this function application is partial,
-   maybe some arguments are missing.
- COMPILING modname
- COMPILING taskdep
- COMPILING helper
- COMPILING dagutils
- COMPILING process
- COMPILING findlibConf
- COMPILING scheduler
- COMPILING prog
- COMPILING dependencies
- COMPILING generators
- COMPILING hier
- COMPILING meta
- COMPILING metacache
- COMPILING target
- COMPILING dist
- COMPILING project
- COMPILING analyze
- COMPILING configure
- COMPILING prepare
- File "prepare.ml", line 379, characters 10-113:
- 379 |           (match file_entry with Hier.FileEntry _ -> SimpleModule | Hier.GeneratedFileEntry _ -> GeneratedModule)
-                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
-   Here is an example of a case that is not matched: DirectoryEntry _
- COMPILING buildprogs
- COMPILING build
- COMPILING exception
- BUILDING library Obuild.cmo
- COMPILING sdist
- COMPILING doc
- COMPILING init
- COMPILING help
- COMPILING install
- COMPILING path_generated
- COMPILING main
- LINKING obuild.bootstrap
- Configuring obuild-0.1.11...
- [ 1 of 57] Compiling Ext.Compat                    
- [ 2 of 57] Compiling Ext.Fugue                     
- File "ext/compat.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "ext/fugue.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [ 3 of 57] Intfing Ext.Filepath                  
- [ 4 of 57] Compiling Ext.Filepath                  
- [ 5 of 57] Intfing Ext.Filesystem                
- [ 6 of 57] Compiling Ext.Filesystem                
- File "ext/filesystem.ml", lines 18-21, characters 11-58:
- 18 | ...........match (Unix.lstat fent).Unix.st_kind with
- 19 |            | Unix.S_DIR -> rmdir_recursive (Unix.rmdir) fent
- 20 |            | Unix.S_REG -> Unix.unlink fent
- 21 |            | _          -> raise (UnexpectedFileType fent)
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Unix.file_kind.
- 
- [ 7 of 57] Packing Ext                           
- [ 8 of 57] Linking library dist/build/lib-obuild.ext/obuild_ext.cmxa
- [ 8 of 57] Linking library dist/build/lib-obuild.ext/obuild_ext.cmxs
- [ 8 of 57] Linking library dist/build/lib-obuild.ext/obuild_ext.cma
- [ 9 of 57] Checking dist/build/lib-obuild.ext
- [10 of 57] Compiling Obuild.Filetype               
- [11 of 57] Compiling Obuild.Gconf                  
- File "obuild/filetype.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [12 of 57] Compiling Obuild.Pp                     
- File "obuild/gconf.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [13 of 57] Compiling Obuild.Dag                    
- File "obuild/pp.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "obuild/pp.ml", line 2, characters 0-15:
- 2 | open Ext.Compat
-     ^^^^^^^^^^^^^^^
- Warning 33 [unused-open]: unused open Ext.Compat.
- 
- [14 of 57] Compiling Obuild.Expr                   
- File "obuild/dag.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [15 of 57] Compiling Obuild.Modname                
- File "obuild/expr.ml", lines 129-131, characters 20-33:
- 129 | ....................match (string_split ':' v ~limit:2) with
- 130 |         [ _ ] -> ("", v)
- 131 |       | [ p1; rest] -> (p1, rest)...
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
-   Here is an example of a case that is not matched: _::rest::_::_
- 
- File "obuild/expr.ml", lines 132-134, characters 23-35:
- 132 | .......................match (string_split '-' rest ~limit:2) with
- 133 |         [ _ ] -> (p1, rest, "")
- 134 |       | [ p2 ; p3 ] -> (p1, p2, p3)...
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
-   Here is an example of a case that is not matched: _::p3::_::_
- 
- File "obuild/expr.ml", lines 216-222, characters 8-9:
- 216 | ........(match r with
- 217 |          | Token.RPAREN :: r -> (Paren e, r)
- 218 |          | Token.OR :: _ | Token.AND :: _ ->
- 219 |            let (e, r) = parse_bin_expr e r in
- 220 |            loop e r
- 221 |          | _ -> raise UnbalancedParenthesis;
- 222 |         )
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Token.t.
- 
- File "obuild/expr.ml", lines 209-231, characters 4-82:
- 209 | ....match l with
- 210 |     | [] -> raise MalformedExpression
- 211 |     | Token.NOT :: r ->
- 212 |       let (e, r) = parse_sub_expr r in ((Not e), r)
- 213 |     | Token.LPAREN :: r ->
- ...
- 228 |     | Token.LT :: Token.VER v :: r -> (Lt v, r)
- 229 |     | Token.LE :: Token.VER v :: r -> (Le v, r)
- 230 |     | Token.NE :: Token.VER v :: r -> (Ne v, r)
- 231 |     | z              -> raise (UnknownExpression (showList "," Token.to_string z))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Token.t.
- 
- File "obuild/expr.ml", lines 233-236, characters 4-36:
- 233 | ....match l with
- 234 |     | Token.OR :: r -> let (e, r) = parse_sub_expr r in ((Or (expr,e)), r)
- 235 |     | Token.AND :: r -> let (e, r) = parse_sub_expr r in ((And (expr,e)), r)
- 236 |     | _ -> raise MalformedExpression
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Token.t.
- 
- File "obuild/expr.ml", lines 268-271, characters 2-73:
- 268 | ..match Token.lexer s with
- 269 |   | []                    -> raise ExpressionEmpty
- 270 |   | Token.ID name :: constraints -> (name, (parse_constraints name constraints))
- 271 |   | x :: _           -> raise (InvalidDependencyName (Token.to_string x))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Token.t.
- 
- File "obuild/expr.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [16 of 57] Compiling Obuild.Types                  
- File "obuild/modname.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [17 of 57] Compiling Obuild.Taskdep                
- File "obuild/types.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [18 of 57] Compiling Obuild.Libname                
- File "obuild/libname.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [19 of 57] Compiling Obuild.Utils                  
- File "obuild/taskdep.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [20 of 57] Compiling Obuild.Dagutils               
- File "obuild/dagutils.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "obuild/utils.ml", line 70, characters 23-73:
- 70 |            try let _ = List.find (fun n -> Filesystem.exists (n p)) names in true
-                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Warning 5 [ignored-partial-application]: this function application is partial,
-   maybe some arguments are missing.
- 
- File "obuild/utils.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [21 of 57] Compiling Obuild.Helper                 
- File "obuild/helper.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [22 of 57] Compiling Obuild.Process                
- File "obuild/process.ml", lines 95-97, characters 2-57:
- 95 | ..match pstat with
- 96 |   | Unix.WEXITED 0 -> Success (Buffer.contents p.out.buf, Buffer.contents p.err.buf, Unix.gettimeofday () -. p.time)
- 97 |   | _              -> Failure (Buffer.contents p.err.buf)
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Unix.process_status.
- 
- File "obuild/process.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [23 of 57] Compiling Obuild.Scheduler              
- [24 of 57] Compiling Obuild.FindlibConf            
- File "obuild/findlibConf.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [25 of 57] Compiling Obuild.Prog                   
- File "obuild/scheduler.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [26 of 57] Compiling Obuild.Meta                   
- File "obuild/prog.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [27 of 57] Compiling Obuild.Generators             
- File "obuild/generators.ml", line 55, characters 10-101:
- 55 |   let s = match ext with Filetype.FileOther s -> s | _ -> raise (GeneratorNotFound (fp_to_string fp)) in
-                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Filetype.t.
- 
- File "obuild/generators.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [28 of 57] Compiling Obuild.Dependencies           
- File "obuild/dependencies.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [29 of 57] Compiling Obuild.Hier                   
- File "obuild/meta.ml", lines 129-130, characters 27-67:
- 129 | ...........................match p with Predicate.Neg n -> not (List.mem n constraints)
- 130 |                                       | _ -> List.mem p constraints.......
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Predicate.t.
- 
- File "obuild/meta.ml", lines 138-139, characters 29-63:
- 138 | .............................match p with Predicate.Neg n -> not (List.mem n preds)
- 139 |                                         | _ -> List.mem p preds...............
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Predicate.t.
- 
- File "obuild/meta.ml", lines 314-318, characters 28-36:
- 314 | ............................function
- 315 |     | COMMA :: ID s :: xs -> let (l, r) = parse_predicate xs in ((Predicate.of_string s) :: l, r)
- 316 |     | COMMA :: MINUS :: ID s :: xs ->
- 317 |       let (l, r) = parse_predicate xs in ((Predicate.Neg (Predicate.of_string s)) :: l, r)
- 318 |     | xs                 -> ([], xs)
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 323-326, characters 48-95:
- 323 | ................................................match xs2 with
- 324 |         | RPAREN :: xs3 ->
- 325 |           ((Predicate.of_string s) :: preds, xs3)
- 326 |         | _ -> raise (MetaParseError (name, ("expecting ')' after " ^ field ^ "'s predicate")))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 329-332, characters 48-95:
- 329 | ................................................match xs2 with
- 330 |         | RPAREN :: xs3 ->
- 331 |           ((Predicate.Neg (Predicate.of_string s)) :: preds, xs3)
- 332 |         | _ -> raise (MetaParseError (name, ("expecting ')' after " ^ field ^ "'s predicate")))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 320-334, characters 40-20:
- 320 | ........................................function
- 321 |     | LPAREN :: RPAREN :: xs -> ([], xs)
- 322 |     | LPAREN :: ID s :: xs ->
- 323 |       (let (preds, xs2) = parse_predicate xs in match xs2 with
- 324 |         | RPAREN :: xs3 ->
- ...
- 331 |           ((Predicate.Neg (Predicate.of_string s)) :: preds, xs3)
- 332 |         | _ -> raise (MetaParseError (name, ("expecting ')' after " ^ field ^ "'s predicate")))
- 333 |       )
- 334 |     | xs -> ([], xs)
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 346-353, characters 8-75:
- 346 | ........match xs2 with
- 347 |         | PLUSEQ :: S reqs :: xs3
- 348 |         | EQ :: S reqs :: xs3 ->
- 349 |           let deps = List.map (fun r -> Libname.of_string r)
- 350 |                      $ (List.filter (fun x -> x <> "") $ string_split_pred (fun c -> List.mem c [',';' ']) reqs)
- 351 |           in
- 352 |           parse pkg_name { acc with Pkg.requires = (preds, (List.rev deps)) :: acc.Pkg.requires } xs3
- 353 |         | _ -> raise (MetaParseError (pkg_name, "parsing requires failed"))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 360-364, characters 8-74:
- 360 | ........match xs2 with
- 361 |         | EQ :: S v :: xs3 ->
- 362 |           let nacc = { acc with Pkg.warning = acc.Pkg.warning @ [(preds, v)] } in
- 363 |           parse pkg_name nacc xs3
- 364 |         | _ -> raise (MetaParseError (pkg_name, "parsing warning failed"))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 369-376, characters 8-74:
- 369 | ........match xs2 with
- 370 |         | PLUSEQ :: S v :: xs3 ->
- 371 |           let nacc = { acc with Pkg.append_archives = acc.Pkg.append_archives @ [(preds, v)] } in
- 372 |           parse pkg_name nacc xs3
- 373 |         | EQ :: S v :: xs3 ->
- 374 |           let nacc = { acc with Pkg.archives = acc.Pkg.archives @ [(preds, v)] } in
- 375 |           parse pkg_name nacc xs3
- 376 |         | _ -> raise (MetaParseError (pkg_name, "parsing archive failed"))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 381-388, characters 8-73:
- 381 | ........match xs2 with
- 382 |         | PLUSEQ :: S v :: xs3 ->
- 383 |           let nacc = { acc with Pkg.append_archives = acc.Pkg.append_archives @ [(preds, v)] } in
- 384 |           parse pkg_name nacc xs3
- 385 |         | EQ :: S v :: xs3 ->
- 386 |           let nacc = { acc with Pkg.archives = acc.Pkg.archives @ [(preds, v)] } in
- 387 |           parse pkg_name nacc xs3
- 388 |         | _ -> raise (MetaParseError (pkg_name, "parsing plugin failed"))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 393-396, characters 8-70:
- 393 | ........match xs2 with
- 394 |         | EQ :: S v :: xs3 ->
- 395 |           parse pkg_name { acc with Pkg.ppx = Some (preds, v)} xs3
- 396 |         | _ -> raise (MetaParseError (pkg_name, "parsing ppx failed"))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 400-404, characters 8-73:
- 400 | ........match xs2 with
- 401 |         | PLUSEQ :: S v :: xs3 
- 402 |         | EQ :: S v :: xs3 ->
- 403 |           parse pkg_name { acc with Pkg.ppxopt = acc.Pkg.ppxopt @ [(preds, v)]} xs3
- 404 |         | _ -> raise (MetaParseError (pkg_name, "parsing ppxopt failed"))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 409-412, characters 26-57:
- 409 | ..........................function
- 410 |           | RPAREN::zs -> zs
- 411 |           | _::zs      -> consume zs
- 412 |           | []         -> failwith "eof in error context"
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 414-416, characters 8-61:
- 414 | ........match consume xs with
- 415 |         | EQ :: S _ :: xs2 -> parse pkg_name acc xs2
- 416 |         | _                -> failwith "parsing error failed"
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 420-423, characters 8-74:
- 420 | ........match xs2 with
- 421 |         | EQ :: S s :: xs3 ->
- 422 |           parse pkg_name { acc with Pkg.linkopts = ((if preds = [] then None else Some preds), s) :: acc.Pkg.linkopts } xs3
- 423 |         | _         -> failwith "parsing linkopts failed, expecting equal"
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 336-428, characters 31-97:
- 336 | ...............................function
- 337 |     | []           -> (acc, [])
- 338 |     | RPAREN :: xs -> (acc, xs)
- 339 |     | ID "package" :: S name :: LPAREN :: xs ->
- 340 |       (let (pkg, xs2) = parse pkg_name (Pkg.make name) xs in
- ...
- 425 |     | ID stuff :: EQ :: S stuffVal :: xs ->
- 426 |       parse pkg_name { acc with Pkg.assignment = (stuff, stuffVal) :: acc.Pkg.assignment } xs
- 427 |     | x :: xs -> raise (MetaParseError (pkg_name, ("unknown token '" ^ to_string x ^ "' in meta file\n" ^
- 428 |                                                    (String.concat " " (List.map to_string xs)))))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "obuild/meta.ml", line 5, characters 0-11:
- 5 | open Helper
-     ^^^^^^^^^^^
- Warning 33 [unused-open]: unused open Helper.
- 
- File "obuild/meta.ml", line 6, characters 0-10:
- 6 | open Gconf
-     ^^^^^^^^^^
- Warning 33 [unused-open]: unused open Gconf.
- 
- File "obuild/meta.ml", line 136, characters 39-42:
- 136 |   let get_archive_with_filter (_, pkg) dep preds =
-                                              ^^^
- Warning 27 [unused-var-strict]: unused variable dep.
- 
- [30 of 57] Compiling Obuild.Metacache              
- File "obuild/metacache.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "obuild/metacache.ml", line 1, characters 0-9:
- 1 | open Meta
-     ^^^^^^^^^
- Warning 33 [unused-open]: unused open Meta.
- 
- File "obuild/hier.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "obuild/hier.ml", line 4, characters 0-10:
- 4 | open Types
-     ^^^^^^^^^^
- Warning 33 [unused-open]: unused open Types.
- 
- [31 of 57] Compiling Obuild.Target                 
- File "obuild/target.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [32 of 57] Compiling Obuild.Project                
- [33 of 57] Compiling Obuild.Dist                   
- File "obuild/dist.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "obuild/project.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [34 of 57] Compiling Obuild.Analyze                
- File "obuild/analyze.ml", lines 80-82, characters 7-18:
- 80 | .......match name with
- 81 |        | Name.Lib lname -> Some lname
- 82 |        | _ -> None.
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Target.Name.t.
- 
- File "obuild/analyze.ml", lines 247-256, characters 15-26:
- 247 | ...............match preds with
- 248 |                | [ Meta.Predicate.Toploop ] -> ()
- 249 |                | _ ->
- 250 |                  List.iter
- 251 |                    (fun reqDep ->
- 252 |                       verbose Debug "  library %s depends on %s\n"
- 253 |                         (Libname.to_string dep) (Libname.to_string reqDep);
- 254 |                       Dag.addEdge (Dependency dep) (Dependency reqDep) depsDag;
- 255 |                       loop reqDep)
- 256 |                    reqDeps.
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Meta.Predicate.t.
- 
- File "obuild/analyze.ml", lines 275-279, characters 9-29:
- 275 | .........match target.target_name with
- 276 |          | Name.Lib l ->
- 277 |            Dag.addNode (Dependency l) depsDag;
- 278 |            Dag.addEdge (Dependency l)
- 279 |          | _ -> fun _ _ -> ()
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Target.Name.t.
- 
- File "obuild/analyze.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [35 of 57] Compiling Obuild.Configure              
- [36 of 57] Compiling Obuild.Prepare                
- File "obuild/configure.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "obuild/prepare.ml", lines 168-170, characters 8-32:
- 168 | ........match node with
- 169 |         | Dependency dep -> Some dep
- 170 |         | _              -> None
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Analyze.dependency_tag.
- 
- File "obuild/prepare.ml", lines 218-228, characters 17-15:
- 218 | .................(match Filetype.of_filepath fp with
- 219 |                 | Filetype.FileML  -> Some (Modname.of_filename f)
- 220 |                 | Filetype.FileMLI  ->
- 221 |                   if (Filesystem.exists (srcDir </> ((chop_extension f) <.> "ml"))) then
- 222 |                     None
- ...
- 225 |                 | Filetype.FileOther s -> if Generators.is_generator_ext s then Some (Modname.of_filename f)
- 226 |                   else None
- 227 |                 | _                -> None
- 228 |               )
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Filetype.t.
- 
- File "obuild/prepare.ml", line 379, characters 10-113:
- 379 |           (match file_entry with Hier.FileEntry _ -> SimpleModule | Hier.GeneratedFileEntry _ -> GeneratedModule)
-                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
-   Here is an example of a case that is not matched: DirectoryEntry _
- 
- File "obuild/prepare.ml", lines 489-493, characters 10-19:
- 489 | ..........match r with
- 490 |           | CompileModule _ | CompileDirectory _->
- 491 |             Dag.addEdge (LinkTarget target) r stepsDag;
- 492 |             Dag.addEdge (CheckTarget target) (LinkTarget target) stepsDag;
- 493 |           | _ -> ()
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type compile_step.
- 
- File "obuild/prepare.ml", lines 552-554, characters 6-18:
- 552 | ......match Hashtbl.find conf.project_dep_data dep with
- 553 |       | Internal -> true
- 554 |       | _ -> false............
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Analyze.dep_type.
- 
- File "obuild/prepare.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "obuild/prepare.ml", line 202, characters 9-16:
- 202 |     let (srcPath,srcDir) =
-                ^^^^^^^
- Warning 27 [unused-var-strict]: unused variable srcPath.
- 
- File "obuild/prepare.ml", line 233, characters 13-20:
- 233 |         let (srcPath, srcFile, intfFile) =
-                    ^^^^^^^
- Warning 27 [unused-var-strict]: unused variable srcPath.
- 
- File "obuild/prepare.ml", line 239, characters 37-41:
- 239 |           | Hier.GeneratedFileEntry (path, file, generated) ->
-                                            ^^^^
- Warning 27 [unused-var-strict]: unused variable path.
- 
- [37 of 57] Compiling Obuild.Buildprogs             
- File "obuild/buildprogs.ml", lines 69-73, characters 14-73:
- 69 | ..............function
- 70 |     | Filetype.FileML -> ext
- 71 |     | Filetype.FileMLI -> Filetype.FileCMI
- 72 |     | _ -> (* It should not happen *)
- 73 |       if buildMode = ByteCode then Filetype.FileCMO else Filetype.FileCMX
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Filetype.t.
- 
- File "obuild/buildprogs.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "obuild/buildprogs.ml", line 66, characters 17-23:
- 66 | let runOcamlPack srcDir dstDir annotMode buildMode packOpt dest modules =
-                       ^^^^^^
- Warning 27 [unused-var-strict]: unused variable srcDir.
- 
- [38 of 57] Compiling Obuild.Build                  
- File "obuild/build.ml", lines 60-72, characters 45-7:
- 60 | .............................................(
- 61 |         match srcTy with
- 62 |         | Filetype.FileCMX | Filetype.FileCMO ->
- 63 |           let bml = Filetype.replace_extension bdest Filetype.FileML in
- 64 |           let bmli = Filetype.replace_extension bdest Filetype.FileMLI in
- ...
- 69 |           "Library changed " ^ fp_to_string changedSrc
- 70 |         | _ ->
- 71 |           "Dependencies changed " ^ fp_to_string changedSrc
- 72 |       )
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Filetype.t.
- 
- File "obuild/build.ml", lines 59-80, characters 4-42:
- 59 | ....match Filetype.of_filename bdest with
- 60 |     | Filetype.FileCMX | Filetype.FileCMO -> (
- 61 |         match srcTy with
- 62 |         | Filetype.FileCMX | Filetype.FileCMO ->
- 63 |           let bml = Filetype.replace_extension bdest Filetype.FileML in
- ...
- 77 |       else if bh = bsrc then ("H file " ^ fn_to_string bsrc ^ " changed")
- 78 |       else ("file changed " ^ fp_to_string changedSrc)
- 79 |     | _ ->
- 80 |       fp_to_string changedSrc ^ " changed"
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Filetype.t.
- 
- File "obuild/build.ml", line 89, characters 6-63:
- 89 |       match (t,o) with (ByteCode,WithProf) -> false | _ -> true) all_modes
-            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Types.ocaml_compiled_type.
- 
- File "obuild/build.ml", line 89, characters 6-63:
- 89 |       match (t,o) with (ByteCode,WithProf) -> false | _ -> true) all_modes
-            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Types.ocaml_compilation_option.
- 
- File "obuild/build.ml", lines 150-155, characters 20-21:
- 150 | ....................match e with
- 151 |           Hier.FileEntry (_, f) ->
- 152 |             if (Filetype.of_filepath f) = Filetype.FileMLI then
- 153 |               Some m
- 154 |             else None
- 155 |           | _ -> None
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Hier.file_entry.
- 
- File "obuild/build.ml", line 340, characters 71-75:
- 340 |     (satisfy_all current_pkg) && (List.for_all satisfy_all current_pkg.subs) in
-                                                                              ^^^^
- Warning 40 [name-out-of-scope]: subs was selected from type Meta.Pkg.t.
-   It is not visible in the current scope, and will not be selected
-   if the type becomes unknown.
- 
- File "obuild/build.ml", line 340, characters 71-75:
- 340 |     (satisfy_all current_pkg) && (List.for_all satisfy_all current_pkg.subs) in
-                                                                              ^^^^
- Warning 42 [disambiguated-name]: this use of subs relies on type-directed
-   disambiguation, it will not compile with OCaml 4.00 or earlier.
- 
- File "obuild/build.ml", line 339, characters 10-26:
- 339 |   let rec dep_is_satisfied current_pkg =
-                 ^^^^^^^^^^^^^^^^
- Warning 39 [unused-rec-flag]: unused rec flag.
- 
- File "obuild/build.ml", lines 363-365, characters 22-24:
- 363 | ......................match compileOpt with
- 364 |             | WithProf -> Meta.Predicate.Gprof :: preds
- 365 |             | _ -> preds
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Types.ocaml_compilation_option.
- 
- File "obuild/build.ml", lines 377-385, characters 13-58:
- 377 | .............match target.target_name with
- 378 |     | Name.Lib libname ->
- 379 |       if plugin then
- 380 |         cstate.compilation_builddir_ml Normal </> Libname.to_cmxs compileOpt libname
- 381 |       else
- 382 |         cstate.compilation_builddir_ml Normal </> Libname.to_cmca compiledType compileOpt libname
- 383 |     | _ ->
- 384 |       let outputName = Utils.to_exe_name compileOpt compiledType (Target.get_target_dest_name target) in
- 385 |       cstate.compilation_builddir_ml Normal </> outputName
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Target.Name.t.
- 
- File "obuild/build.ml", lines 498-500, characters 40-51:
- 498 | ........................................match task with
- 499 |        | CompileC _ -> raise (CCompilationFailed er)
- 500 |        | _          -> raise (CompilationFailed er)
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Prepare.compile_step.
- 
- File "obuild/build.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "obuild/build.ml", line 333, characters 28-34:
- 333 |         List.fold_left (fun in_acc lib ->
-                                   ^^^^^^
- Warning 27 [unused-var-strict]: unused variable in_acc.
- 
- [39 of 57] Compiling Obuild.Exception              
- File "obuild/exception.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [40 of 57] Packing Obuild                        
- [41 of 57] Linking library dist/build/lib-obuild/obuild.cmxa
- [41 of 57] Linking library dist/build/lib-obuild/obuild.cmxs
- [41 of 57] Linking library dist/build/lib-obuild/obuild.cma
- [42 of 57] Checking dist/build/lib-obuild
- [43 of 57] Compiling Assimilate_oasis              
- [44 of 57] Compiling Simple                        
- File "tools/assimilate_oasis.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [45 of 57] Compiling Install                       
- File "src/install.ml", lines 21-24, characters 6-35:
- 21 | ......match Filetype.of_filepath (build_dir </> f) with
- 22 |       | Filetype.FileCMX | Filetype.FileCMI | Filetype.FileA | Filetype.FileCMXS
- 23 |       | Filetype.FileCMXA | Filetype.FileCMA | Filetype.FileCMT | Filetype.FileCMTI -> true
- 24 |       | _                  -> false.
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Obuild.Filetype.t.
- 
- File "src/install.ml", lines 27-29, characters 4-31:
- 27 | ....match Filetype.of_filepath (build_dir </> f) with
- 28 |     | Filetype.FileEXE -> true
- 29 |     | _                -> false.
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Obuild.Filetype.t.
- 
- File "src/install.ml", lines 43-44, characters 31-76:
- 43 | ...............................match target.target_name with
- 44 |           | Name.Lib _ -> print_target_files target list_lib_files | _ -> ()..............
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Obuild.Target.Name.t.
- 
- File "src/install.ml", lines 47-48, characters 31-76:
- 47 | ...............................match target.target_name with
- 48 |           | Name.Exe _ -> print_target_files target list_exe_files | _ -> ()..............
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Obuild.Target.Name.t.
- 
- File "src/install.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [46 of 57] Compiling Doc                           
- File "src/simple.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [47 of 57] Compiling Sdist                         
- File "src/doc.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "src/doc.ml", line 15, characters 8-16:
- 15 | let run projFile =
-              ^^^^^^^^
- Warning 27 [unused-var-strict]: unused variable projFile.
- 
- [48 of 57] Compiling Help                          
- File "src/help.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [49 of 57] Compiling Path_generated                
- File "src/sdist.ml", lines 28-30, characters 14-38:
- 28 | ..............match Filetype.of_filepath fpath with
- 29 |               | Filetype.FileML | Filetype.FileMLI -> Filesystem.copy_to_dir fpath dest
- 30 |               | _                -> ()
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Obuild.Filetype.t.
- 
- File "src/sdist.ml", lines 36-38, characters 12-21:
- 36 | ............match Filetype.of_filepath fpath with
- 37 |             | Filetype.FileC | Filetype.FileH -> Filesystem.copy_to_dir fpath dest
- 38 |             | _ -> ()
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Obuild.Filetype.t.
- 
- File "src/sdist.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "src/sdist.ml", line 9, characters 17-27:
- 9 | let run projFile isSnapshot =
-                      ^^^^^^^^^^
- Warning 27 [unused-var-strict]: unused variable isSnapshot.
- 
- [50 of 57] Compiling Init                          
- File "dist/build/autogen/path_generated.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [51 of 57] Linking executable dist/build/obuild-from-oasis/obuild-from-oasis
- File "src/init.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [52 of 57] Linking executable dist/build/obuild-simple/obuild-simple
- [53 of 57] Compiling Main                          
- [54 of 57] Checking dist/build/obuild-from-oasis
- [55 of 57] Checking dist/build/obuild-simple
- File "src/main.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [56 of 57] Linking executable dist/build/obuild/obuild
- [57 of 57] Checking dist/build/obuild
- 
- real	0m6.566s
- user	0m6.732s
- sys	0m2.193s
-> compiled  obuild.0.1.11
-> removed   obuild.0.1.11
-> installed obuild.0.1.11
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-25 16:18.47 ---> saved as "2070f9ad2c305cb1c52424c975848be04b3c21af0f3fab0ab06eb82c3d830f5b"
Job succeeded
2026-03-25 16:19.09: Job succeeded