(for PR #29110)

2025-12-30 15:25.24: New job: build llvm.20-shared, using opam dev
                              from https://github.com/ocaml/opam-repository.git#refs/pull/29110/head (a16fbbbc4ad239dba151649395b1e98d3d337d30)
                              on alpine-3.22-ocaml-4.14/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/29110/head" && git reset --hard a16fbbbc
git fetch origin master
git merge --no-edit f2d102f951a5dc2af6db218c6aef53c80186295a
cat > ../Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:alpine-3.22-ocaml-4.14@sha256:1e01c3f7e0b071696321e89bc05e390048332c85e35a9e83f6811affb824173d
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 llvm.20-shared 20-shared
RUN opam reinstall llvm.20-shared; \
    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 "\"alpine-3.22\""; then \
    echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
    fi; \
    test "$pkg" != 'llvm.20-shared' && 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-12-30 15:25.24: Using cache hint "ocaml/opam:alpine-3.22-ocaml-4.14@sha256:1e01c3f7e0b071696321e89bc05e390048332c85e35a9e83f6811affb824173d-llvm.20-shared-a16fbbbc4ad239dba151649395b1e98d3d337d30"
2025-12-30 15:25.24: Using OBuilder spec:
((from ocaml/opam:alpine-3.22-ocaml-4.14@sha256:1e01c3f7e0b071696321e89bc05e390048332c85e35a9e83f6811affb824173d)
 (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 llvm.20-shared 20-shared"))
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell  "opam reinstall llvm.20-shared;\
             \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 \"\\\"alpine-3.22\\\"\"; then\
             \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
             \n          fi;\
             \n          test \"$pkg\" != 'llvm.20-shared' && partial_fails=\"$partial_fails $pkg\";\
             \n        done;\
             \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
             \n        exit 1"))
)

2025-12-30 15:25.24: Waiting for resource in pool OCluster
2025-12-30 15:25.25: Waiting for worker…
2025-12-30 15:27.31: Got resource from pool OCluster
Building on clete
All commits already cached
HEAD is now at f2d102f951 Merge pull request #29150 from raphael-proust/llvm-20-21-only-cosmetics
Merge made by the 'ort' strategy.
 packages/conf-llvm-shared/conf-llvm-shared.20/opam | 34 +++++++++++
 packages/conf-llvm-shared/conf-llvm-shared.21/opam | 34 +++++++++++
 packages/conf-llvm-static/conf-llvm-static.20/opam | 34 +++++++++++
 packages/conf-llvm-static/conf-llvm-static.21/opam | 34 +++++++++++
 packages/llvm/llvm.20-shared/opam                  | 67 ++++++++++++++++++++++
 packages/llvm/llvm.20-static/opam                  | 67 ++++++++++++++++++++++
 packages/llvm/llvm.21-shared/opam                  | 67 ++++++++++++++++++++++
 packages/llvm/llvm.21-static/opam                  | 67 ++++++++++++++++++++++
 8 files changed, 404 insertions(+)
 create mode 100644 packages/conf-llvm-shared/conf-llvm-shared.20/opam
 create mode 100644 packages/conf-llvm-shared/conf-llvm-shared.21/opam
 create mode 100644 packages/conf-llvm-static/conf-llvm-static.20/opam
 create mode 100644 packages/conf-llvm-static/conf-llvm-static.21/opam
 create mode 100644 packages/llvm/llvm.20-shared/opam
 create mode 100644 packages/llvm/llvm.20-static/opam
 create mode 100644 packages/llvm/llvm.21-shared/opam
 create mode 100644 packages/llvm/llvm.21-static/opam

(from ocaml/opam:alpine-3.22-ocaml-4.14@sha256:1e01c3f7e0b071696321e89bc05e390048332c85e35a9e83f6811affb824173d)
Unable to find image 'ocaml/opam:alpine-3.22-ocaml-4.14@sha256:1e01c3f7e0b071696321e89bc05e390048332c85e35a9e83f6811affb824173d' locally
docker.io/ocaml/opam@sha256:1e01c3f7e0b071696321e89bc05e390048332c85e35a9e83f6811affb824173d: Pulling from ocaml/opam
2d35ebdb57d9: Pulling fs layer
f63fa0955e1c: Pulling fs layer
d1aff334d2ef: Pulling fs layer
dd7ef0713d60: Pulling fs layer
1cb85b1771c1: Pulling fs layer
b3e3cbca8fe5: Pulling fs layer
f63fa0955e1c: Waiting
2d35ebdb57d9: Waiting
d1aff334d2ef: Waiting
1cb85b1771c1: Waiting
dd7ef0713d60: Waiting
e20f2edd147c: Pulling fs layer
b3e3cbca8fe5: Waiting
2a81809d2792: Pulling fs layer
44d45904e0bf: Pulling fs layer
e4766861c56b: Pulling fs layer
44d45904e0bf: Waiting
781637641c53: Pulling fs layer
e20f2edd147c: Waiting
7a3635ad3eff: Pulling fs layer
e4766861c56b: Waiting
781637641c53: Waiting
a17b51910e9e: Pulling fs layer
7a3635ad3eff: Waiting
ebefb05f3452: Pulling fs layer
a17b51910e9e: Waiting
7516504988c4: Pulling fs layer
6de436e58aaa: Pulling fs layer
ebefb05f3452: Waiting
7516504988c4: Waiting
c95d51a1d4cc: Pulling fs layer
4f4fb700ef54: Pulling fs layer
6de436e58aaa: Waiting
958c68e99d31: Pulling fs layer
3276c8259ea4: Pulling fs layer
4f4fb700ef54: Waiting
c95d51a1d4cc: Waiting
dc258c8006b5: Pulling fs layer
762484f20604: Pulling fs layer
dc258c8006b5: Waiting
e420826a58be: Pulling fs layer
3276c8259ea4: Waiting
21ebbf1cf394: Pulling fs layer
e420826a58be: Waiting
fcab148fc6b3: Pulling fs layer
762484f20604: Waiting
21ebbf1cf394: Waiting
0a5763305413: Pulling fs layer
0bb0efb41734: Pulling fs layer
fcab148fc6b3: Waiting
0a5763305413: Waiting
99400a979ef1: Pulling fs layer
0bb0efb41734: Waiting
57e03fc374af: Pulling fs layer
99400a979ef1: Waiting
e6ea8c92b8c1: Pulling fs layer
9f382f7bc8ee: Pulling fs layer
b0d06a6c6175: Pulling fs layer
4d2a1c175ac8: Pulling fs layer
9f382f7bc8ee: Waiting
8304e3cd4887: Pulling fs layer
0fc2673dbd75: Pulling fs layer
4d2a1c175ac8: Waiting
7fc8a2a61f7b: Pulling fs layer
e6ea8c92b8c1: Waiting
0fc2673dbd75: Waiting
57c7406035ea: Pulling fs layer
8304e3cd4887: Waiting
5ae345dd4040: Pulling fs layer
7fc8a2a61f7b: Waiting
b44f45581090: Pulling fs layer
57c7406035ea: Waiting
5ae345dd4040: Waiting
3378a54f5336: Pulling fs layer
3378a54f5336: Waiting
2d35ebdb57d9: Verifying Checksum
2d35ebdb57d9: Download complete
f63fa0955e1c: Verifying Checksum
f63fa0955e1c: Download complete
2d35ebdb57d9: Pull complete
f63fa0955e1c: Pull complete
d1aff334d2ef: Verifying Checksum
d1aff334d2ef: Download complete
d1aff334d2ef: Pull complete
1cb85b1771c1: Verifying Checksum
1cb85b1771c1: Download complete
b3e3cbca8fe5: Verifying Checksum
b3e3cbca8fe5: Download complete
e20f2edd147c: Verifying Checksum
e20f2edd147c: Download complete
2a81809d2792: Verifying Checksum
2a81809d2792: Download complete
44d45904e0bf: Verifying Checksum
44d45904e0bf: Download complete
e4766861c56b: Verifying Checksum
e4766861c56b: Download complete
781637641c53: Verifying Checksum
781637641c53: Download complete
a17b51910e9e: Verifying Checksum
a17b51910e9e: Download complete
7a3635ad3eff: Verifying Checksum
7a3635ad3eff: Download complete
ebefb05f3452: Download complete
7516504988c4: Download complete
6de436e58aaa: Download complete
c95d51a1d4cc: Download complete
4f4fb700ef54: Verifying Checksum
4f4fb700ef54: Download complete
958c68e99d31: Verifying Checksum
958c68e99d31: Download complete
3276c8259ea4: Verifying Checksum
3276c8259ea4: Download complete
dc258c8006b5: Download complete
dd7ef0713d60: Verifying Checksum
dd7ef0713d60: Download complete
762484f20604: Verifying Checksum
762484f20604: Download complete
e420826a58be: Download complete
21ebbf1cf394: Verifying Checksum
21ebbf1cf394: Download complete
fcab148fc6b3: Verifying Checksum
fcab148fc6b3: Download complete
0a5763305413: Verifying Checksum
0a5763305413: Download complete
0bb0efb41734: Download complete
99400a979ef1: Download complete
57e03fc374af: Verifying Checksum
57e03fc374af: Download complete
e6ea8c92b8c1: Verifying Checksum
e6ea8c92b8c1: Download complete
b0d06a6c6175: Download complete
8304e3cd4887: Download complete
0fc2673dbd75: Download complete
7fc8a2a61f7b: Verifying Checksum
7fc8a2a61f7b: Download complete
dd7ef0713d60: Pull complete
1cb85b1771c1: Pull complete
b3e3cbca8fe5: Pull complete
e20f2edd147c: Pull complete
2a81809d2792: Pull complete
44d45904e0bf: Pull complete
e4766861c56b: Pull complete
781637641c53: Pull complete
7a3635ad3eff: Pull complete
a17b51910e9e: Pull complete
ebefb05f3452: Pull complete
7516504988c4: Pull complete
6de436e58aaa: Pull complete
c95d51a1d4cc: Pull complete
4f4fb700ef54: Pull complete
958c68e99d31: Pull complete
3276c8259ea4: Pull complete
dc258c8006b5: Pull complete
762484f20604: Pull complete
e420826a58be: Pull complete
21ebbf1cf394: Pull complete
fcab148fc6b3: Pull complete
0a5763305413: Pull complete
0bb0efb41734: Pull complete
99400a979ef1: Pull complete
57e03fc374af: Pull complete
e6ea8c92b8c1: Pull complete
9f382f7bc8ee: Verifying Checksum
9f382f7bc8ee: Download complete
5ae345dd4040: Verifying Checksum
5ae345dd4040: Download complete
b44f45581090: Verifying Checksum
b44f45581090: Download complete
57c7406035ea: Verifying Checksum
57c7406035ea: Download complete
3378a54f5336: Download complete
4d2a1c175ac8: Verifying Checksum
4d2a1c175ac8: Download complete
9f382f7bc8ee: Pull complete
b0d06a6c6175: Pull complete
4d2a1c175ac8: Pull complete
8304e3cd4887: Pull complete
0fc2673dbd75: Pull complete
7fc8a2a61f7b: Pull complete
57c7406035ea: Pull complete
5ae345dd4040: Pull complete
b44f45581090: Pull complete
3378a54f5336: Pull complete
Digest: sha256:1e01c3f7e0b071696321e89bc05e390048332c85e35a9e83f6811affb824173d
Status: Downloaded newer image for ocaml/opam@sha256:1e01c3f7e0b071696321e89bc05e390048332c85e35a9e83f6811affb824173d
2025-12-30 15:28.22 ---> using "eea90963ba0392165e09431e983752d9c41412a71c01eef45894392e0f881121" from cache

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

/: (workdir /home/opam)

/home/opam: (run (shell "sudo ln -f /usr/bin/opam-dev /usr/bin/opam"))
2025-12-30 15:28.22 ---> using "5f9e5dee1aa92dd4620baa694a2c984426210e5942e528379209b524656c6b99" 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
[NOTE] The 'jobs' option was reset, its value was 255 and its new value will vary according to the current number of cores on your machine. You can restore the fixed value using:
           opam option jobs=255 --global
Format upgrade done.

<><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised
2025-12-30 15:28.22 ---> using "62f6e35eb2e5f9da3f18f4cef21b46134a1b63f637c4d4b7492da3fa5c904923" 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=alpine os-version=3.22.2
# 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       4.14
# invariant            ["ocaml-base-compiler" {= "4.14.2"}]
# compiler-packages    ocaml-base-compiler.4.14.2, ocaml-options-vanilla.1
# ocaml:native         true
# ocaml:native-tools   true
# ocaml:native-dynlink true
# ocaml:stubsdir       /home/opam/.opam/4.14/lib/ocaml/stublibs:/home/opam/.opam/4.14/lib/ocaml
# ocaml:preinstalled   false
# ocaml:compiler       4.14.2
2025-12-30 15:28.22 ---> using "1ebe318f7782a5c43e1f6b035dd0b772cbc8c8092c2651e9652ad68e255a076c" 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-12-30 15:28.22 ---> using "d3853225ac884d41062cbbe864a1f42931dcaaae01da82c27dfbf12b815de3b5" from cache

/home/opam: (copy (src .) (dst opam-repository/))
2025-12-30 15:28.32 ---> saved as "65cbea220b7d476054ee205d5238037de69efeeb93f4b6633135a006f53508a1"

/home/opam: (run (shell "opam repository set-url --strict default opam-repository/"))
[default] Initialised
2025-12-30 15:28.52 ---> saved as "60295ec35a89013912f918b1b47983934a7781892e16801cc113b9d01284e8dc"

/home/opam: (run (network host)
                 (shell "opam update --depexts || true"))
+ /usr/bin/sudo "apk" "update"
- fetch https://dl-cdn.alpinelinux.org/alpine/v3.22/main/x86_64/APKINDEX.tar.gz
- fetch https://dl-cdn.alpinelinux.org/alpine/v3.22/community/x86_64/APKINDEX.tar.gz
- fetch https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
- fetch https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
- fetch https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
- v3.22.2-323-g6078141c2a5 [https://dl-cdn.alpinelinux.org/alpine/v3.22/main]
- v3.22.2-325-gffb20bd62d9 [https://dl-cdn.alpinelinux.org/alpine/v3.22/community]
- v20251224-185-g4b274c58ffb [https://dl-cdn.alpinelinux.org/alpine/edge/main]
- v20251224-206-g81f93cec053 [https://dl-cdn.alpinelinux.org/alpine/edge/community]
- v20251224-205-g0cd4d6caf1f [https://dl-cdn.alpinelinux.org/alpine/edge/testing]
- OK: 60605 distinct packages available
2025-12-30 15:28.57 ---> saved as "7a8aa46e225adea060dcfa03e1c24ade0f4949a6438d5ed98105b85cc75ee9f4"

/home/opam: (run (shell "opam pin add -k version -yn llvm.20-shared 20-shared"))
llvm is now pinned to version 20-shared
2025-12-30 15:28.58 ---> saved as "1bba9a063e2a874ea66018dd11d798e032588c75b5372eab263ae62076ca17f5"

/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
                 (network host)
                 (shell  "opam reinstall llvm.20-shared;\
                        \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 \"\\\"alpine-3.22\\\"\"; then\
                        \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
                        \n          fi;\
                        \n          test \"$pkg\" != 'llvm.20-shared' && partial_fails=\"$partial_fails $pkg\";\
                        \n        done;\
                        \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
                        \n        exit 1"))
llvm.20-shared is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 11 packages
  - install conf-bash         1                  [required by conf-llvm-shared]
  - install conf-cmake        1                  [required by llvm]
  - install conf-llvm-shared  20                 [required by llvm]
  - install csexp             1.5.2              [required by dune-configurator]
  - install ctypes            0.24.0             [required by llvm]
  - install dune              3.20.2             [required by ctypes]
  - install dune-configurator 3.20.2             [required by ctypes]
  - install integers          0.7.0              [required by ctypes]
  - install llvm              20-shared (pinned)
  - install ocamlfind         1.9.8              [required by llvm]
  - install stdlib-shims      0.3.0              [required by integers]

The following system packages will first need to be installed:
    cmake llvm20-dev

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

opam believes some required external dependencies are missing. opam can:
> 1. Run apk to install them (may need root/sudo access)
  2. Display the recommended apk 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 "apk" "add" "cmake" "llvm20-dev"
- (1/16) Installing libarchive (3.8.3-r0)
- (2/16) Installing rhash-libs (1.4.5-r0)
- (3/16) Installing libuv (1.51.0-r0)
- (4/16) Installing cmake (3.31.7-r1)
- (5/16) Installing libxml2 (2.13.9-r0)
- (6/16) Installing llvm20-libs (20.1.8-r0)
- (7/16) Installing llvm20-linker-tools (20.1.8-r0)
- (8/16) Installing llvm20-test-utils (20.1.8-r0)
- (9/16) Installing llvm20-test-utils-pyc (20.1.8-r0)
- (10/16) Installing llvm20 (20.1.8-r0)
- (11/16) Installing linux-headers (6.14.2-r0)
- (12/16) Installing libffi-dev (3.4.8-r0)
- (13/16) Installing zlib-dev (1.3.1-r2)
- (14/16) Installing zstd (1.5.7-r0)
- (15/16) Installing zstd-dev (1.5.7-r0)
- (16/16) Installing llvm20-dev (20.1.8-r0)
- Executing busybox-1.37.0-r20.trigger
- OK: 679 MiB in 118 packages

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved conf-cmake.1  (cached)
-> retrieved conf-llvm-shared.20  (cached)
-> retrieved csexp.1.5.2  (cached)
-> installed conf-bash.1
-> installed conf-cmake.1
-> retrieved ctypes.0.24.0  (cached)
-> installed conf-llvm-shared.20
-> retrieved dune.3.20.2, dune-configurator.3.20.2  (cached)
-> retrieved integers.0.7.0  (cached)
-> installed dune.3.20.2
-> installed csexp.1.5.2
-> installed dune-configurator.3.20.2
-> retrieved llvm.20-shared  (https://github.com/llvm/llvm-project/releases/download/llvmorg-20.1.8/llvm-project-20.1.8.src.tar.xz)
-> retrieved ocamlfind.1.9.8  (cached)
-> retrieved stdlib-shims.0.3.0  (cached)
-> installed stdlib-shims.0.3.0
-> installed integers.0.7.0
-> installed ocamlfind.1.9.8
-> installed ctypes.0.24.0
-> installed llvm.20-shared
Done.
# To update the current shell environment, run: eval $(opam env)
2025-12-30 15:33.22 ---> saved as "8dfbab2f4c234f8c84b4c72f276a6a44f0a18832cabf0b4d6345baefa1f89ed6"
Job succeeded
2025-12-30 15:33.29: Job succeeded