(for PR #28222)

2025-08-21 14:13.40: New job: build lwt_log.1.1.2, using opam 2.2
                              from https://github.com/ocaml/opam-repository.git#refs/pull/28222/head (a14b2680809606d7e55ae7ed410b73438cb77bd0)
                              on debian-12-ocaml-5.3/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/28222/head" && git reset --hard a14b2680
git fetch origin master
git merge --no-edit 4bae7ec4df49df4454ea492c8d7a1196aeae04e0
cat > ../Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:debian-12-ocaml-5.3@sha256:ea4d070703e4c16aa9fe1cdf0b1a22c669ee514080881d205b570783be9040da
USER 1000:1000
WORKDIR /home/opam
RUN sudo ln -f /usr/bin/opam-2.2 /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 lwt_log.1.1.2 1.1.2
RUN opam reinstall lwt_log.1.1.2; \
    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-12\""; then \
    echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
    fi; \
    test "$pkg" != 'lwt_log.1.1.2' && 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 .

2025-08-21 14:13.40: Using cache hint "ocaml/opam:debian-12-ocaml-5.3@sha256:ea4d070703e4c16aa9fe1cdf0b1a22c669ee514080881d205b570783be9040da-lwt_log.1.1.2-a14b2680809606d7e55ae7ed410b73438cb77bd0"
2025-08-21 14:13.40: Using OBuilder spec:
((from ocaml/opam:debian-12-ocaml-5.3@sha256:ea4d070703e4c16aa9fe1cdf0b1a22c669ee514080881d205b570783be9040da)
 (user (uid 1000) (gid 1000))
 (workdir /home/opam)
 (run (shell "sudo ln -f /usr/bin/opam-2.2 /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 lwt_log.1.1.2 1.1.2"))
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell  "opam reinstall lwt_log.1.1.2;\
             \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-12\\\"\"; then\
             \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
             \n          fi;\
             \n          test \"$pkg\" != 'lwt_log.1.1.2' && partial_fails=\"$partial_fails $pkg\";\
             \n        done;\
             \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
             \n        exit 1"))
)

2025-08-21 14:13.40: Waiting for resource in pool OCluster
2025-08-21 14:22.25: Waiting for worker…
2025-08-21 14:24.06: Got resource from pool OCluster
Building on bremusa.ocamllabs.io
All commits already cached
Updating files:  82% (14876/18065)
Updating files:  83% (14994/18065)
Updating files:  84% (15175/18065)
Updating files:  85% (15356/18065)
Updating files:  86% (15536/18065)
Updating files:  87% (15717/18065)
Updating files:  88% (15898/18065)
Updating files:  89% (16078/18065)
Updating files:  90% (16259/18065)
Updating files:  91% (16440/18065)
Updating files:  92% (16620/18065)
Updating files:  93% (16801/18065)
Updating files:  94% (16982/18065)
Updating files:  95% (17162/18065)
Updating files:  96% (17343/18065)
Updating files:  97% (17524/18065)
Updating files:  98% (17704/18065)
Updating files:  99% (17885/18065)
Updating files: 100% (18065/18065)
Updating files: 100% (18065/18065), done.
HEAD is now at 4bae7ec4df Merge pull request #28375 from jmid/opam-compiler-re-bounds
Merge made by the 'ort' strategy.
 packages/curl_lwt/curl_lwt.0.10.0/opam            |  2 +-
 packages/lwt/lwt.6.0.0~alpha01/opam               | 69 +++++++++++++++++++++++
 packages/lwt_direct/lwt_direct.6.0.0~alpha01/opam | 44 +++++++++++++++
 packages/lwt_glib/lwt_glib.1.0.1/opam             |  2 +-
 packages/lwt_glib/lwt_glib.1.1.0/opam             |  2 +-
 packages/lwt_glib/lwt_glib.1.1.1/opam             |  2 +-
 packages/lwt_log/lwt_log.1.1.0/opam               |  2 +-
 packages/lwt_log/lwt_log.1.1.1/opam               |  2 +-
 packages/lwt_log/lwt_log.1.1.2/opam               |  2 +-
 packages/ocurl/ocurl.0.7.6/opam                   |  1 +
 packages/ocurl/ocurl.0.7.7/opam                   |  1 +
 packages/ocurl/ocurl.0.7.8/opam                   |  1 +
 packages/ocurl/ocurl.0.7.9/opam                   |  1 +
 packages/ocurl/ocurl.0.8.1/opam                   |  1 +
 packages/ocurl/ocurl.0.8.2/opam                   |  1 +
 packages/ocurl/ocurl.0.9.0/opam                   |  1 +
 packages/ocurl/ocurl.0.9.1/opam                   |  1 +
 packages/ocurl/ocurl.0.9.2/opam                   |  1 +
 18 files changed, 129 insertions(+), 7 deletions(-)
 create mode 100644 packages/lwt/lwt.6.0.0~alpha01/opam
 create mode 100644 packages/lwt_direct/lwt_direct.6.0.0~alpha01/opam

(from ocaml/opam:debian-12-ocaml-5.3@sha256:ea4d070703e4c16aa9fe1cdf0b1a22c669ee514080881d205b570783be9040da)
2025-08-21 14:24.18 ---> using "7b3e7b3709bbd37e599e66041e6848f5fe2736f92dc6c0cdd0ce7e7e3b68a5fe" from cache

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

/: (workdir /home/opam)

/home/opam: (run (shell "sudo ln -f /usr/bin/opam-2.2 /usr/bin/opam"))
2025-08-21 14:24.18 ---> using "8b269e7fac6347f0a0325b87507f8516d84a698decb3c1c29ae15e810730a2ba" 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 development 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
2025-08-21 14:24.18 ---> using "582986a8d5808e52ca470038176dfb49a5257b71df5626d1cd9c0eeeadd0d1d7" 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.2.1 (01e9a24a61e23e42d513b4b775d8c30c807439b2)
# self-upgrade         no
# system               arch=x86_64 os=linux os-distribution=debian os-version=12
# solver               builtin-0install
# install-criteria     
# upgrade-criteria     
# jobs                 71
# repositories         1 (version-controlled)
# pinned               1 (version)
# current-switch       5.3
# invariant            ocaml-base-compiler = 5.3.0
# compiler-packages    ocaml-base-compiler.5.3.0, ocaml-compiler.5.3.0, ocaml-options-vanilla.1
# ocaml:native         true
# ocaml:native-tools   true
# ocaml:native-dynlink true
# ocaml:stubsdir       /home/opam/.opam/5.3/lib/ocaml/stublibs:/home/opam/.opam/5.3/lib/ocaml
# ocaml:preinstalled   false
# ocaml:compiler       5.3.0
2025-08-21 14:24.18 ---> using "f778b9d8c9cb5d1074b0d36af118d8c690b89892c02d459be7433339e9e128f7" 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/"))
2025-08-21 14:24.18 ---> using "713a9e587a3d220db137f85f8cede94dd15175ccde74d1b794791c0fd2a3dd43" from cache

/home/opam: (copy (src .) (dst opam-repository/))
2025-08-21 14:24.27 ---> saved as "8effd0a82da39ea9d4367d5000741b73f5444afa4b96b1a266334cee8d749879"

/home/opam: (run (shell "opam repository set-url --strict default opam-repository/"))
[default] Initialised
2025-08-21 14:24.50 ---> saved as "5e09c93e5bf182f97d6bd4859b514e8f077e8c1b59438e041eeea3fc44a865dc"

/home/opam: (run (network host)
                 (shell "opam update --depexts || true"))
+ /usr/bin/sudo "apt-get" "update"
- Hit:1 http://deb.debian.org/debian bookworm InRelease
- Get:2 http://deb.debian.org/debian bookworm-updates InRelease [55.4 kB]
- Get:3 http://deb.debian.org/debian-security bookworm-security InRelease [48.0 kB]
- Get:4 http://deb.debian.org/debian-security bookworm-security/main amd64 Packages [274 kB]
- Fetched 378 kB in 0s (1019 kB/s)
- Reading package lists...
- 
2025-08-21 14:24.51 ---> saved as "68c6e43ba62b262a64576fd27500493076d9f2c0f351b9ba34f3776a95328081"

/home/opam: (run (shell "opam pin add -k version -yn lwt_log.1.1.2 1.1.2"))
lwt_log is now pinned to version 1.1.2
2025-08-21 14:24.53 ---> saved as "bea665f31e34f6cf96d276b916e89879878451e045c5921c8425663c7e785e77"

/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
                 (network host)
                 (shell  "opam reinstall lwt_log.1.1.2;\
                        \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-12\\\"\"; then\
                        \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
                        \n          fi;\
                        \n          test \"$pkg\" != 'lwt_log.1.1.2' && partial_fails=\"$partial_fails $pkg\";\
                        \n        done;\
                        \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
                        \n        exit 1"))
lwt_log.1.1.2 is not installed. Install it? [y/n] y
The following actions will be performed:
=== install 10 packages
  - install base-bytes        base           [required by ocplib-endian]
  - install cppo              1.8.0          [required by lwt]
  - install csexp             1.5.2          [required by dune-configurator]
  - install domain_shims      0.1.0          [required by lwt]
  - install dune              3.20.0         [required by lwt_log]
  - install dune-configurator 3.20.0         [required by lwt]
  - install lwt               6.0.0~alpha01  [required by lwt_log]
  - install lwt_log           1.1.2 (pinned)
  - install ocamlfind         1.9.8          [required by base-bytes]
  - install ocplib-endian     1.2            [required by lwt]

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved cppo.1.8.0  (cached)
-> retrieved csexp.1.5.2  (cached)
-> retrieved domain_shims.0.1.0  (cached)
-> retrieved dune.3.20.0, dune-configurator.3.20.0  (cached)
-> retrieved lwt.6.0.0~alpha01  (cached)
-> retrieved lwt_log.1.1.2  (cached)
-> retrieved ocamlfind.1.9.8  (cached)
-> retrieved ocplib-endian.1.2  (cached)
-> installed ocamlfind.1.9.8
-> installed base-bytes.base
-> installed dune.3.20.0
-> installed domain_shims.0.1.0
-> installed csexp.1.5.2
-> installed cppo.1.8.0
-> installed ocplib-endian.1.2
-> installed dune-configurator.3.20.0
-> installed lwt.6.0.0~alpha01
[ERROR] The compilation of lwt_log.1.1.2 failed at "dune build -p lwt_log -j 71".

#=== ERROR while compiling lwt_log.1.1.2 ======================================#
# context              2.2.1 | linux/x86_64 | ocaml-base-compiler.5.3.0 | pinned(https://github.com/ocsigen/lwt_log/archive/1.1.2.tar.gz)
# path                 ~/.opam/5.3/.opam-switch/build/lwt_log.1.1.2
# command              ~/.opam/opam-init/hooks/sandbox.sh build dune build -p lwt_log -j 71
# exit-code            1
# env-file             ~/.opam/log/lwt_log-7-fdf6ef.env
# output-file          ~/.opam/log/lwt_log-7-fdf6ef.out
### output ###
# (cd _build/default && /home/opam/.opam/5.3/bin/ocamlc.opt -w -40 -w +A -g -bin-annot -bin-annot-occurrences -I src/unix/.lwt_log.objs/byte -I /home/opam/.opam/5.3/lib/bytes -I /home/opam/.opam/5.3/lib/domain_shims -I /home/opam/.opam/5.3/lib/lwt -I /home/opam/.opam/5.3/lib/lwt/unix -I /home/opam/.opam/5.3/lib/ocaml/threads -I /home/opam/.opam/5.3/lib/ocaml/unix -I /home/opam/.opam/5.3/lib/ocplib-endian -I /home/opam/.opam/5.3/lib/ocplib-endian/bigstring -I src/core/.lwt_log_core.objs/byte -cmi-file src/unix/.lwt_log.objs/byte/lwt_daemon.cmi -no-alias-deps -o src/unix/.lwt_log.objs/byte/lwt_daemon.cmo -c -impl src/unix/lwt_daemon.ml)
# File "src/unix/lwt_daemon.ml", line 64, characters 49-68:
# 64 |     Lwt_sequence.iter_node_l Lwt_sequence.remove Lwt_main.exit_hooks [@ocaml.warning "-3"];
#                                                       ^^^^^^^^^^^^^^^^^^^
# Error: Unbound value "Lwt_main.exit_hooks"
# (cd _build/default && /home/opam/.opam/5.3/bin/ocamlopt.opt -w -40 -w +A -g -I src/unix/.lwt_log.objs/byte -I src/unix/.lwt_log.objs/native -I /home/opam/.opam/5.3/lib/bytes -I /home/opam/.opam/5.3/lib/domain_shims -I /home/opam/.opam/5.3/lib/lwt -I /home/opam/.opam/5.3/lib/lwt/unix -I /home/opam/.opam/5.3/lib/ocaml/threads -I /home/opam/.opam/5.3/lib/ocaml/unix -I /home/opam/.opam/5.3/lib/ocplib-endian -I /home/opam/.opam/5.3/lib/ocplib-endian/bigstring -I src/core/.lwt_log_core.objs/byte -I src/core/.lwt_log_core.objs/native -cmi-file src/unix/.lwt_log.objs/byte/lwt_daemon.cmi -no-alias-deps -o src/unix/.lwt_log.objs/native/lwt_daemon.cmx -c -impl src/unix/lwt_daemon.ml)
# File "src/unix/lwt_daemon.ml", line 64, characters 49-68:
# 64 |     Lwt_sequence.iter_node_l Lwt_sequence.remove Lwt_main.exit_hooks [@ocaml.warning "-3"];
#                                                       ^^^^^^^^^^^^^^^^^^^
# Error: Unbound value "Lwt_main.exit_hooks"



<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
+- The following actions failed
| - build lwt_log 1.1.2
+- 
+- The following changes have been performed
| - install base-bytes        base
| - install cppo              1.8.0
| - install csexp             1.5.2
| - install domain_shims      0.1.0
| - install dune              3.20.0
| - install dune-configurator 3.20.0
| - install lwt               6.0.0~alpha01
| - install ocamlfind         1.9.8
| - install ocplib-endian     1.2
+- 
# Run eval $(opam env) to update the current shell environment

The former state can be restored with:
    /usr/bin/opam switch import "/home/opam/.opam/5.3/.opam-switch/backup/state-20250821142454.export"
[WARNING] OPAMCONFIRMLEVEL was ignored because CLI 2.0 was requested and it was introduced in 2.1.
[WARNING] OPAMCONFIRMLEVEL was ignored because CLI 2.0 was requested and it was introduced in 2.1.
"/usr/bin/env" "bash" "-c" "opam reinstall lwt_log.1.1.2;
        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-12\""; then
            echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.";
          fi;
          test "$pkg" != 'lwt_log.1.1.2' && partial_fails="$partial_fails $pkg";
        done;
        test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}";
        exit 1" failed with exit status 1
2025-08-21 14:25.43: Job failed: Failed: Build failed
2025-08-21 14:25.43: Log analysis:
2025-08-21 14:25.43: >>> 
[ERROR] The compilation of lwt_log.1.1.2 failed at "dune build -p lwt_log -j 71".
 (score = 20)
2025-08-21 14:25.43: >>> 
# Error: Unbound value "Lwt_main.exit_hooks"
 (score = 48)
2025-08-21 14:25.43: >>> 
# Error: Unbound value "Lwt_main.exit_hooks"
 (score = 48)
2025-08-21 14:25.43: Unbound value "Lwt_main.exit_hooks"