(for PR #29117)
2025-12-20 10:17.06: New job: build merlin.5.6.1-504, using opam dev
from https://github.com/ocaml/opam-repository.git#refs/pull/29117/head (c3b5c54904ea4308c605e1c3272dbdeb71bfdb08)
on centos-9-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/29117/head" && git reset --hard c3b5c549
git fetch origin master
git merge --no-edit 55b1099664cdc48c71e3d01d8fdaef4b376ade70
cat > ../Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:centos-9-ocaml-5.4@sha256:276844cb499ceeb9331277a8ad201c68a44546875dd6e2802a6bd59ccec9c7b1
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 merlin.5.6.1-504 5.6.1-504
RUN opam reinstall merlin.5.6.1-504; \
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 "\"centos-9\""; then \
echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
fi; \
test "$pkg" != 'merlin.5.6.1-504' && 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-20 10:17.06: Using cache hint "ocaml/opam:centos-9-ocaml-5.4@sha256:276844cb499ceeb9331277a8ad201c68a44546875dd6e2802a6bd59ccec9c7b1-merlin.5.6.1-504-c3b5c54904ea4308c605e1c3272dbdeb71bfdb08"
2025-12-20 10:17.06: Using OBuilder spec:
((from ocaml/opam:centos-9-ocaml-5.4@sha256:276844cb499ceeb9331277a8ad201c68a44546875dd6e2802a6bd59ccec9c7b1)
(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 merlin.5.6.1-504 5.6.1-504"))
(run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam reinstall merlin.5.6.1-504;\
\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 \"\\\"centos-9\\\"\"; then\
\n echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
\n fi;\
\n test \"$pkg\" != 'merlin.5.6.1-504' && 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-20 10:17.06: Waiting for resource in pool OCluster
2025-12-20 10:17.09: Waiting for worker…
2025-12-20 10:21.59: Got resource from pool OCluster
Building on asteria.caelum.ci.dev
All commits already cached
HEAD is now at 55b1099664 Merge pull request #29100 from samoht/release-cohttp-v6.2.1
Updating 55b1099664..c3b5c54904
Fast-forward
.../dot-merlin-reader.5.6.1-504/opam | 31 +++++++++
packages/merlin-lib/merlin-lib.5.6.1-504/opam | 36 ++++++++++
packages/merlin/merlin.5.6.1-504/opam | 81 ++++++++++++++++++++++
packages/ocaml-index/ocaml-index.5.6.1-504/opam | 42 +++++++++++
4 files changed, 190 insertions(+)
create mode 100644 packages/dot-merlin-reader/dot-merlin-reader.5.6.1-504/opam
create mode 100644 packages/merlin-lib/merlin-lib.5.6.1-504/opam
create mode 100644 packages/merlin/merlin.5.6.1-504/opam
create mode 100644 packages/ocaml-index/ocaml-index.5.6.1-504/opam
(from ocaml/opam:centos-9-ocaml-5.4@sha256:276844cb499ceeb9331277a8ad201c68a44546875dd6e2802a6bd59ccec9c7b1)
Unable to find image 'ocaml/opam:centos-9-ocaml-5.4@sha256:276844cb499ceeb9331277a8ad201c68a44546875dd6e2802a6bd59ccec9c7b1' locally
docker.io/ocaml/opam@sha256:276844cb499ceeb9331277a8ad201c68a44546875dd6e2802a6bd59ccec9c7b1: Pulling from ocaml/opam
de99a8d9d723: Pulling fs layer
31bad51cacb7: Pulling fs layer
785cba0234f6: Pulling fs layer
3f43a4d128c5: Pulling fs layer
9cfb195d8af6: Pulling fs layer
df8685f55fad: Pulling fs layer
d82d0f56e9ef: Pulling fs layer
785cba0234f6: Waiting
3f43a4d128c5: Waiting
9cfb195d8af6: Waiting
3a644f45324d: Pulling fs layer
de99a8d9d723: Waiting
31bad51cacb7: Waiting
df8685f55fad: Waiting
d6f9579cfc29: Pulling fs layer
d82d0f56e9ef: Waiting
3a644f45324d: Waiting
006d0b77cb32: Pulling fs layer
308c7eba2c53: Pulling fs layer
d6f9579cfc29: Waiting
46c570f32f7e: Pulling fs layer
006d0b77cb32: Waiting
70a715375a6d: Pulling fs layer
308c7eba2c53: Waiting
fd9a4277b54d: Pulling fs layer
70a715375a6d: Waiting
4a9968709106: Pulling fs layer
46c570f32f7e: Waiting
e1361a786c7a: Pulling fs layer
4a9968709106: Waiting
fd9a4277b54d: Waiting
00186cadce3f: Pulling fs layer
e1361a786c7a: Waiting
28d92e23b655: Pulling fs layer
00186cadce3f: Waiting
6ff72f261b36: Pulling fs layer
28d92e23b655: Waiting
0ce1f4e04603: Pulling fs layer
f1f912365f15: Pulling fs layer
6ff72f261b36: Waiting
0ce1f4e04603: Waiting
c15cdbcc7573: Pulling fs layer
4f4fb700ef54: Pulling fs layer
f1f912365f15: Waiting
c15cdbcc7573: Waiting
42120470cb95: Pulling fs layer
4f4fb700ef54: Waiting
f14a020fee70: Pulling fs layer
42120470cb95: Waiting
1b30f0eec7e3: Pulling fs layer
d7fdb23f78da: Pulling fs layer
f14a020fee70: Waiting
84b9ced21bbb: Pulling fs layer
1b30f0eec7e3: Waiting
d7fdb23f78da: Waiting
cdf316080a86: Pulling fs layer
84b9ced21bbb: Waiting
6646097d9a5d: Pulling fs layer
995d220eedee: Pulling fs layer
cdf316080a86: Waiting
b9418b18bf55: Pulling fs layer
6646097d9a5d: Waiting
a62bf95ad693: Pulling fs layer
995d220eedee: Waiting
b81baf625672: Pulling fs layer
8fbb1e502ed5: Pulling fs layer
a62bf95ad693: Waiting
b81baf625672: Waiting
b9418b18bf55: Waiting
2608c14f0874: Pulling fs layer
69453bae428b: Pulling fs layer
2921e68ea8a4: Pulling fs layer
2608c14f0874: Waiting
4b3d47515fde: Pulling fs layer
5502e81f6845: Pulling fs layer
2921e68ea8a4: Waiting
69453bae428b: Waiting
4b3d47515fde: Waiting
e5523bb77a1a: Pulling fs layer
4456aa22817d: Pulling fs layer
5502e81f6845: Waiting
41175f2e4d29: Pulling fs layer
e5523bb77a1a: Waiting
556297af25c6: Pulling fs layer
4456aa22817d: Waiting
9c249bfbd49a: Pulling fs layer
41175f2e4d29: Waiting
b1687387b713: Pulling fs layer
9c249bfbd49a: Waiting
b1687387b713: Waiting
31bad51cacb7: Download complete
de99a8d9d723: Verifying Checksum
de99a8d9d723: Download complete
785cba0234f6: Verifying Checksum
785cba0234f6: Download complete
9cfb195d8af6: Verifying Checksum
9cfb195d8af6: Download complete
df8685f55fad: Verifying Checksum
df8685f55fad: Download complete
d82d0f56e9ef: Verifying Checksum
d82d0f56e9ef: Download complete
3a644f45324d: Download complete
de99a8d9d723: Pull complete
31bad51cacb7: Pull complete
d6f9579cfc29: Verifying Checksum
d6f9579cfc29: Download complete
785cba0234f6: Pull complete
006d0b77cb32: Verifying Checksum
006d0b77cb32: Download complete
308c7eba2c53: Verifying Checksum
308c7eba2c53: Download complete
46c570f32f7e: Verifying Checksum
46c570f32f7e: Download complete
70a715375a6d: Verifying Checksum
70a715375a6d: Download complete
3f43a4d128c5: Verifying Checksum
3f43a4d128c5: Download complete
fd9a4277b54d: Verifying Checksum
fd9a4277b54d: Download complete
4a9968709106: Verifying Checksum
4a9968709106: Download complete
e1361a786c7a: Verifying Checksum
e1361a786c7a: Download complete
28d92e23b655: Download complete
00186cadce3f: Verifying Checksum
00186cadce3f: Download complete
6ff72f261b36: Download complete
0ce1f4e04603: Verifying Checksum
0ce1f4e04603: Download complete
f1f912365f15: Verifying Checksum
f1f912365f15: Download complete
c15cdbcc7573: Download complete
4f4fb700ef54: Verifying Checksum
4f4fb700ef54: Download complete
42120470cb95: Verifying Checksum
42120470cb95: Download complete
f14a020fee70: Verifying Checksum
f14a020fee70: Download complete
1b30f0eec7e3: Verifying Checksum
1b30f0eec7e3: Download complete
84b9ced21bbb: Download complete
d7fdb23f78da: Verifying Checksum
d7fdb23f78da: Download complete
cdf316080a86: Verifying Checksum
cdf316080a86: Download complete
6646097d9a5d: Verifying Checksum
6646097d9a5d: Download complete
b9418b18bf55: Verifying Checksum
b9418b18bf55: Download complete
995d220eedee: Download complete
a62bf95ad693: Download complete
8fbb1e502ed5: Verifying Checksum
8fbb1e502ed5: Download complete
b81baf625672: Download complete
69453bae428b: Verifying Checksum
69453bae428b: Download complete
2608c14f0874: Verifying Checksum
2608c14f0874: Download complete
4b3d47515fde: Verifying Checksum
4b3d47515fde: Download complete
5502e81f6845: Download complete
e5523bb77a1a: Verifying Checksum
e5523bb77a1a: Download complete
41175f2e4d29: Verifying Checksum
41175f2e4d29: Download complete
556297af25c6: Download complete
9c249bfbd49a: Download complete
b1687387b713: Download complete
4456aa22817d: Verifying Checksum
4456aa22817d: Download complete
2921e68ea8a4: Verifying Checksum
2921e68ea8a4: Download complete
3f43a4d128c5: Pull complete
9cfb195d8af6: Pull complete
df8685f55fad: Pull complete
d82d0f56e9ef: Pull complete
3a644f45324d: Pull complete
d6f9579cfc29: Pull complete
006d0b77cb32: Pull complete
308c7eba2c53: Pull complete
46c570f32f7e: Pull complete
70a715375a6d: Pull complete
fd9a4277b54d: Pull complete
4a9968709106: Pull complete
e1361a786c7a: Pull complete
00186cadce3f: Pull complete
28d92e23b655: Pull complete
6ff72f261b36: Pull complete
0ce1f4e04603: Pull complete
f1f912365f15: Pull complete
c15cdbcc7573: Pull complete
4f4fb700ef54: Pull complete
42120470cb95: Pull complete
f14a020fee70: Pull complete
1b30f0eec7e3: Pull complete
d7fdb23f78da: Pull complete
84b9ced21bbb: Pull complete
cdf316080a86: Pull complete
6646097d9a5d: Pull complete
995d220eedee: Pull complete
b9418b18bf55: Pull complete
a62bf95ad693: Pull complete
b81baf625672: Pull complete
8fbb1e502ed5: Pull complete
2608c14f0874: Pull complete
69453bae428b: Pull complete
2921e68ea8a4: Pull complete
4b3d47515fde: Pull complete
5502e81f6845: Pull complete
e5523bb77a1a: Pull complete
4456aa22817d: Pull complete
41175f2e4d29: Pull complete
556297af25c6: Pull complete
9c249bfbd49a: Pull complete
b1687387b713: Pull complete
Digest: sha256:276844cb499ceeb9331277a8ad201c68a44546875dd6e2802a6bd59ccec9c7b1
Status: Downloaded newer image for ocaml/opam@sha256:276844cb499ceeb9331277a8ad201c68a44546875dd6e2802a6bd59ccec9c7b1
2025-12-20 10:25.55 ---> saved as "9dd9f396eb817cd3c3add6c8e6677d2a14b6413c033b21c081514d39f6cd1554"
/: (user (uid 1000) (gid 1000))
/: (workdir /home/opam)
/home/opam: (run (shell "sudo ln -f /usr/bin/opam-dev /usr/bin/opam"))
2025-12-20 10:25.55 ---> saved as "1e858b4361123ab4fe20fe586d9eb301b86673c06359db7374f06761a8c9575e"
/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 71 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=71 --global
Format upgrade done.
<><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised
2025-12-20 10:26.19 ---> saved as "d1ae085f96fab2a55ff4d3f525356f8d091263d1281f1e2c7b8b2c1e9bdc7cb1"
/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=centos os-version=9
# solver builtin-0install
# install-criteria -changed,-count[avoid-version,solution]
# upgrade-criteria -count[avoid-version,solution]
# jobs 255
# 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
2025-12-20 10:26.19 ---> saved as "4b61d9573667a3555f569855b4a06b4f549c6e77a2f9ef0e74d64a949157a788"
/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-20 10:26.34 ---> saved as "48fbd1e4046223ffb7104d52dc81b2313c0cc73e20957a84f60d58a9baa8e516"
/home/opam: (copy (src .) (dst opam-repository/))
2025-12-20 10:26.42 ---> saved as "6ca756559a49ea4574530ca2a947c74cd1bdb762075b5ba8c187c901d870492a"
/home/opam: (run (shell "opam repository set-url --strict default opam-repository/"))
[default] Initialised
2025-12-20 10:27.05 ---> saved as "5fcfcfb605fe9bddeff5bb6f0b874916f22dca33b4e015c162a661d0f7283b06"
/home/opam: (run (network host)
(shell "opam update --depexts || true"))
+ /usr/bin/sudo "yum" "makecache"
- CentOS Stream 9 - BaseOS 85 kB/s | 14 kB 00:00
- CentOS Stream 9 - BaseOS 15 MB/s | 8.8 MB 00:00
- CentOS Stream 9 - AppStream 116 kB/s | 15 kB 00:00
- CentOS Stream 9 - AppStream 14 MB/s | 26 MB 00:01
- CentOS Stream 9 - CRB 104 kB/s | 14 kB 00:00
- CentOS Stream 9 - CRB 11 MB/s | 7.4 MB 00:00
- CentOS Stream 9 - Extras packages 118 kB/s | 16 kB 00:00
- Metadata cache created.
2025-12-20 10:27.23 ---> saved as "92a7f73d838ef475b6ab57ba005b3bce0d10eadde90be3f34c0723a4b2296372"
/home/opam: (run (shell "opam pin add -k version -yn merlin.5.6.1-504 5.6.1-504"))
merlin is now pinned to version 5.6.1-504
2025-12-20 10:27.24 ---> saved as "0f7e68fc27a431d2a6c6ca608570e3e87b44de2ffd8c5e58e6ff7f0fe0fe6678"
/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam reinstall merlin.5.6.1-504;\
\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 \"\\\"centos-9\\\"\"; then\
\n echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
\n fi;\
\n test \"$pkg\" != 'merlin.5.6.1-504' && partial_fails=\"$partial_fails $pkg\";\
\n done;\
\n test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
\n exit 1"))
merlin.5.6.1-504 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 8 packages
- install csexp 1.5.2 [required by merlin-lib]
- install dot-merlin-reader 5.6.1-504 [required by merlin]
- install dune 3.20.2 [required by merlin]
- install merlin 5.6.1-504 (pinned)
- install merlin-lib 5.6.1-504 [required by merlin]
- install ocaml-index 5.6.1-504
- install ocamlfind 1.9.8 [required by dot-merlin-reader]
- install yojson 3.0.0 [required by merlin]
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved csexp.1.5.2 (cached)
-> retrieved dot-merlin-reader.5.6.1-504, merlin.5.6.1-504, merlin-lib.5.6.1-504, ocaml-index.5.6.1-504 (cached)
-> retrieved dune.3.20.2 (cached)
-> retrieved ocamlfind.1.9.8 (cached)
-> retrieved yojson.3.0.0 (cached)
-> installed ocamlfind.1.9.8
-> installed dune.3.20.2
-> installed csexp.1.5.2
-> installed yojson.3.0.0
-> installed merlin-lib.5.6.1-504
-> installed dot-merlin-reader.5.6.1-504
-> installed ocaml-index.5.6.1-504
-> installed merlin.5.6.1-504
Done.
<><> merlin.5.6.1-504 installed successfully ><><><><><><><><><><><><><><><><><>
=> merlin installed.
Quick setup for VIM
-------------------
Append this to your .vimrc to add merlin to vim's runtime-path:
let g:opamshare = substitute(system('opam var share'),'\n$','','''')
execute "set rtp+=" . g:opamshare . "/merlin/vim"
Also run the following line in vim to index the documentation:
:execute "helptags " . g:opamshare . "/merlin/vim/doc"
Quick setup for EMACS
-------------------
Add opam emacs directory to your load-path by appending this to your .emacs:
(let ((opam-share (ignore-errors (car (process-lines "opam" "var" "share")))))
(when (and opam-share (file-directory-p opam-share))
;; Register Merlin
(add-to-list 'load-path (expand-file-name "emacs/site-lisp" opam-share))
(autoload 'merlin-mode "merlin" nil t nil)
;; Automatically start it in OCaml buffers
(add-hook 'tuareg-mode-hook 'merlin-mode t)
(add-hook 'caml-mode-hook 'merlin-mode t)
;; Use opam switch to lookup ocamlmerlin binary
(setq merlin-command 'opam)
;; To easily change opam switches within a given Emacs session, you can
;; install the minor mode https://github.com/ProofGeneral/opam-switch-mode
;; and use one of its "OPSW" menus.
))
Take a look at https://github.com/ocaml/merlin for more information
Quick setup with opam-user-setup
--------------------------------
Opam-user-setup support Merlin.
$ opam user-setup install
should take care of basic setup.
See https://github.com/OCamlPro/opam-user-setup
# To update the current shell environment, run: eval $(opam env)
2025-12-20 10:28.06 ---> saved as "78883da5c302c86c471dcbf5e3d7ac6dd488e846f3fac5d2bc77f17baefd3578"
Job succeeded
2025-12-20 10:28.21: Job succeeded