(for PR #29613)

2026-04-04 05:22.56: New job: build conf-perl-string-shellquote.4, using opam dev
                              from https://github.com/ocaml/opam-repository.git#refs/pull/29613/head (5f64e545c42823195503816088208e2d89a257c4)
                              on opensuse-16.0-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/29613/head" && git reset --hard 5f64e545
git fetch origin master
git merge --no-edit d28e8bf13a73691f040f863e87466580aa116aff
cat > ../Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:opensuse-16.0-ocaml-5.4@sha256:1e561cb97d70e0ba99bb6b92723e6bb69ca94fb4f894a4285697ccff7edc0453
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 conf-perl-string-shellquote.4 4
RUN opam reinstall conf-perl-string-shellquote.4; \
    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 "\"opensuse-16.0\""; then \
    echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
    fi; \
    test "$pkg" != 'conf-perl-string-shellquote.4' && 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-04-04 05:22.56: Using cache hint "ocaml/opam:opensuse-16.0-ocaml-5.4@sha256:1e561cb97d70e0ba99bb6b92723e6bb69ca94fb4f894a4285697ccff7edc0453-conf-perl-string-shellquote.4-5f64e545c42823195503816088208e2d89a257c4"
2026-04-04 05:22.56: Using OBuilder spec:
((from ocaml/opam:opensuse-16.0-ocaml-5.4@sha256:1e561cb97d70e0ba99bb6b92723e6bb69ca94fb4f894a4285697ccff7edc0453)
 (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 conf-perl-string-shellquote.4 4"))
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell  "opam reinstall conf-perl-string-shellquote.4;\
             \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 \"\\\"opensuse-16.0\\\"\"; then\
             \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
             \n          fi;\
             \n          test \"$pkg\" != 'conf-perl-string-shellquote.4' && partial_fails=\"$partial_fails $pkg\";\
             \n        done;\
             \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
             \n        exit 1"))
)

2026-04-04 05:22.56: Waiting for resource in pool OCluster
2026-04-04 05:22.59: Waiting for worker…
2026-04-04 05:22.59: Got resource from pool OCluster
Building on eumache.caelum.ci.dev
All commits already cached
HEAD is now at d28e8bf13a Merge pull request #29642 from talex5/release-lwt_eio-v0.6
Updating d28e8bf13a..5f64e545c4
Fast-forward
 .../conf-perl-ipc-system-simple.4/opam             | 39 ++++++++++
 .../conf-perl-string-shellquote.4/opam             | 36 +++++++++
 packages/conf-perl/conf-perl.3/opam                | 91 ++++++++++++++++++++++
 3 files changed, 166 insertions(+)
 create mode 100644 packages/conf-perl-ipc-system-simple/conf-perl-ipc-system-simple.4/opam
 create mode 100644 packages/conf-perl-string-shellquote/conf-perl-string-shellquote.4/opam
 create mode 100644 packages/conf-perl/conf-perl.3/opam

(from ocaml/opam:opensuse-16.0-ocaml-5.4@sha256:1e561cb97d70e0ba99bb6b92723e6bb69ca94fb4f894a4285697ccff7edc0453)
Unable to find image 'ocaml/opam:opensuse-16.0-ocaml-5.4@sha256:1e561cb97d70e0ba99bb6b92723e6bb69ca94fb4f894a4285697ccff7edc0453' locally
docker.io/ocaml/opam@sha256:1e561cb97d70e0ba99bb6b92723e6bb69ca94fb4f894a4285697ccff7edc0453: Pulling from ocaml/opam
64cfa2a65095: Already exists
204ffcf2f1fe: Already exists
f6fa4529cc6b: Already exists
97af65095748: Already exists
b802a6057f6d: Already exists
47b045e79836: Already exists
2ce8a10bf29f: Already exists
781ee767d1c7: Already exists
2271c058ae3a: Already exists
2e5754ca2c40: Already exists
de21e4dabd9c: Already exists
f047029589c4: Already exists
0f454d36be04: Already exists
04ab44a2df2c: Already exists
ad401f078830: Already exists
096a51bccb57: Already exists
e7134f98c78b: Already exists
afc7c35ee433: Already exists
7bfa5dba7952: Already exists
4f4fb700ef54: Already exists
f6b6a751bb6a: Already exists
f71dccae2ee7: Already exists
fe37a54a1499: Already exists
1815b99ebc09: Already exists
363d1f23b2cf: Already exists
4bb0990bd121: Already exists
ac4f9c652c6c: Already exists
ab5409fef174: Already exists
5e58ee45c6c7: Already exists
ee06219176b1: Already exists
34fd31afeec8: Already exists
c7a97b361486: Already exists
ada59ff61f0e: Pulling fs layer
800479b35645: Pulling fs layer
ada59ff61f0e: Waiting
993399f88197: Pulling fs layer
800479b35645: Waiting
123b0d6fe094: Pulling fs layer
993399f88197: Waiting
ae34cc57e52b: Pulling fs layer
123b0d6fe094: Waiting
2183a8f477cb: Pulling fs layer
ae34cc57e52b: Waiting
b246721e2842: Pulling fs layer
2183a8f477cb: Waiting
6f86c4e34a31: Pulling fs layer
b246721e2842: Waiting
b62ace1c39c5: Pulling fs layer
6f86c4e34a31: Waiting
b62ace1c39c5: Waiting
bcc0e2aa9534: Pulling fs layer
1830a9d7789a: Pulling fs layer
bcc0e2aa9534: Waiting
1621edddb03c: Pulling fs layer
1830a9d7789a: Waiting
cc0c68400729: Pulling fs layer
1621edddb03c: Waiting
cc0c68400729: Waiting
800479b35645: Verifying Checksum
800479b35645: Download complete
993399f88197: Verifying Checksum
993399f88197: Download complete
123b0d6fe094: Verifying Checksum
123b0d6fe094: Download complete
ae34cc57e52b: Verifying Checksum
ae34cc57e52b: Download complete
2183a8f477cb: Download complete
b246721e2842: Verifying Checksum
b246721e2842: Download complete
b62ace1c39c5: Verifying Checksum
b62ace1c39c5: Download complete
6f86c4e34a31: Verifying Checksum
6f86c4e34a31: Download complete
1830a9d7789a: Download complete
1621edddb03c: Verifying Checksum
1621edddb03c: Download complete
cc0c68400729: Download complete
bcc0e2aa9534: Verifying Checksum
bcc0e2aa9534: Download complete
ada59ff61f0e: Verifying Checksum
ada59ff61f0e: Download complete
ada59ff61f0e: Pull complete
800479b35645: Pull complete
993399f88197: Pull complete
123b0d6fe094: Pull complete
ae34cc57e52b: Pull complete
2183a8f477cb: Pull complete
b246721e2842: Pull complete
6f86c4e34a31: Pull complete
b62ace1c39c5: Pull complete
bcc0e2aa9534: Pull complete
1830a9d7789a: Pull complete
1621edddb03c: Pull complete
cc0c68400729: Pull complete
Digest: sha256:1e561cb97d70e0ba99bb6b92723e6bb69ca94fb4f894a4285697ccff7edc0453
Status: Downloaded newer image for ocaml/opam@sha256:1e561cb97d70e0ba99bb6b92723e6bb69ca94fb4f894a4285697ccff7edc0453
2026-04-04 05:26.52 ---> saved as "19bfd5fa0e0b327d3030a7bc542c02bf7a14b19a0d43e23f98bfaa17730b5c61"

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

/: (workdir /home/opam)

/home/opam: (run (shell "sudo ln -f /usr/bin/opam-dev /usr/bin/opam"))
2026-04-04 05:26.52 ---> saved as "1e4988045243bba69203798d0690927e8f3089f3eada20b7ebb5c3b98f43b95a"

/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.

Continue? [Y/n] y
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.

[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
2026-04-04 05:27.17 ---> saved as "1b315dd0fae2be03adddf9e1c7bb80dab3c7230668610b0c52290fbe02fb35da"

/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=opensuse-leap os-version=16.0
# 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.1"}]
# compiler-packages    ocaml-base-compiler.5.4.1, ocaml-compiler.5.4.1, 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.1
2026-04-04 05:27.17 ---> saved as "a9700237dfe924ceb2d4a46518fa531614b31f37df9474584f205ae5d2fc80b9"

/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-04-04 05:27.25 ---> saved as "4fc562db71631d140ae2301547571e39987762cb985dabf3a81f7071914e41d3"

/home/opam: (copy (src .) (dst opam-repository/))
2026-04-04 05:27.35 ---> saved as "0c0b8f9644b8fe7d65fada2b1cd963cf1cc3826e94d880ec51b099fee538d8a1"

/home/opam: (run (shell "opam repository set-url --strict default opam-repository/"))
[default] Initialised
2026-04-04 05:27.53 ---> saved as "0527c645452e18f2efaffe094d5490187c31186178f0226a756cf27361970095"

/home/opam: (run (network host)
                 (shell "opam update --depexts || true"))
+ /usr/bin/sudo "zypper" "--non-interactive" "refresh"
- Repository 'repo-openh264 (16.0)' is up to date.
- Retrieving repository 'repo-oss (16.0)' metadata [..
- Looking for gpg keys in repository repo-oss (16.0).
-   gpgkey=http://cdn.opensuse.org/distribution/leap/16.0/repo/oss/x86_64/repodata/repomd.xml.key
- ..
- .
- .
- ......
- .........
- .......
- ..........
- ..........
- .........
- .........
- .........
- ......done]
- Building repository 'repo-oss (16.0)' cache [..
- ..done]
- All repositories have been refreshed.
2026-04-04 05:28.12 ---> saved as "f4d06cc519a8099787766e85c1fb4e5cde3342bad7b92ff6ca0a5ccb00ec2bf2"

/home/opam: (run (shell "opam pin add -k version -yn conf-perl-string-shellquote.4 4"))
conf-perl-string-shellquote is now pinned to version 4
2026-04-04 05:28.12 ---> saved as "8ebb38c9c3ed46969f64eaad0b27148509a04fd357f50607a89acc38aab0be4b"

/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
                 (network host)
                 (shell  "opam reinstall conf-perl-string-shellquote.4;\
                        \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 \"\\\"opensuse-16.0\\\"\"; then\
                        \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
                        \n          fi;\
                        \n          test \"$pkg\" != 'conf-perl-string-shellquote.4' && partial_fails=\"$partial_fails $pkg\";\
                        \n        done;\
                        \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
                        \n        exit 1"))
conf-perl-string-shellquote.4 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 2 packages
  - install conf-perl                   3          [required by conf-perl-string-shellquote]
  - install conf-perl-string-shellquote 4 (pinned)

The following system packages will first need to be installed:
    perl-String-ShellQuote

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

opam believes some required external dependencies are missing. opam can:
> 1. Run zypper to install them (may need root/sudo access)
  2. Display the recommended zypper 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 "zypper" "--non-interactive" "install" "perl-String-ShellQuote"
- Refreshing service 'openSUSE'.
- Loading repository data...
- Reading installed packages...
- Resolving package dependencies...
- 
- The following NEW package is going to be installed:
-   perl-String-ShellQuote
- 
- 1 new package to install.
- 
- Package download size:    17.9 KiB
- 
- Package install size change:
-               |      15.2 KiB  required by packages that will be installed
-     15.2 KiB  |  -      0 B    released by packages that will be removed
- 
- Backend:  classic_rpmtrans
- Continue? [y/n/v/...? shows all options] (y): y
- Preloading Packages [..
- Preloading: perl-String-ShellQuote-1.04-bp160.1.4.noarch.rpm [done]
- .done]
- Retrieving: perl-String-ShellQuote-1.04-bp160.1.4.noarch (repo-oss (16.0)) (1/1),  17.9 KiB    
- 
- Checking for file conflicts: [..done]
- (1/1) Installing: perl-String-ShellQuote-1.04-bp160.1.4.noarch [..done]
- Running post-transaction scripts [...done]

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> installed conf-perl.3
-> installed conf-perl-string-shellquote.4
Done.
# To update the current shell environment, run: eval $(opam env)
2026-04-04 05:28.17 ---> saved as "8f2eccbc711bf3711a531ea6c289ca733e2d689972d4555006f3fff9013a01ca"
Job succeeded
2026-04-04 05:28.24: Job succeeded