Build:
  1. 0
2024-01-29 15:19.06: New job: Voodoo prep curses.1.0.6; 880dd68b43c040eab9305bb25fbdd289
2024-01-29 15:19.06: Waiting for resource in pool OCluster
2024-01-29 19:25.11: Waiting for worker…
2024-01-29 19:26.15: Got resource from pool OCluster
2024-01-29 19:26.15: Using cache hint "docs-universe-prep-4.14.1"

To reproduce locally:

cat > prep.spec <<'END-OF-SPEC'
((build tools
        ((from ocaml/opam:debian-12-ocaml-4.14@sha256:8e390dbf29f7a115e5c8098ffb1a3c7234a873cf738a5ae22f3a4846122db9ef)
         (user (uid 1000) (gid 1000))
         (workdir /home/opam)
         (run (shell "sudo chown opam:opam /home/opam"))
         (run (network host)
              (shell "sudo apt-get update && sudo apt-get install -yy m4 pkg-config"))
         (run (cache (opam-archives (target /home/opam/.opam/download-cache)) (opam-dune-cache (target /home/opam/.cache/dune)))
              (network host)
              (shell "opam pin -ny https://github.com/ocaml-doc/voodoo.git#67ccabec49b5f4d24147839291fcae7c19d3e8c9  && opam depext -iy voodoo-prep"))
         (run (shell "cp $(opam config var bin)/voodoo-prep /home/opam"))))
 (from ocaml/opam:debian-12-ocaml-4.14@sha256:8e390dbf29f7a115e5c8098ffb1a3c7234a873cf738a5ae22f3a4846122db9ef)
 (user (uid 1000) (gid 1000))
 (workdir /home/opam)
 (run (shell "sudo chown opam:opam /home/opam"))
 (run (shell "sudo mkdir /src"))
 (copy (src packages) (dst /src/packages))
 (copy (src repo) (dst /src/repo))
 (run (network host)
      (shell "sudo ln -f /usr/bin/opam-2.1 /usr/bin/opam && opam init --reinit -ni"))
 (run (shell "opam repo remove default && opam repo add opam /src"))
 (copy (from (build tools)) (src /home/opam/voodoo-prep) (dst /home/opam/))
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)) (opam-dune-cache (target /home/opam/.cache/dune)))
      (network host)
      (shell "opam install ocamlfind.1.9.6"))
 (env DUNE_CACHE disabled)
 (env DUNE_CACHE_TRANSPORT direct)
 (env DUNE_CACHE_DUPLICATION copy)
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)) (opam-dune-cache (target /home/opam/.cache/dune)))
      (network host)
      (shell "(sudo apt update) && ((opam depext -viy curses.1.0.6 ocamlfind.1.9.6 conf-pkg-config.3 conf-ncurses.1 2>&1 | tee ~/opam.err.log) || echo 'Failed to install all packages')"))
 (run (shell "opam exec -- ~/voodoo-prep -u curses:880dd68b43c040eab9305bb25fbdd289"))
 (run (network host)
      (secrets (ssh_privkey (target /home/opam/.ssh/id_rsa)) (ssh_pubkey (target /home/opam/.ssh/id_rsa.pub)) (ssh_config (target /home/opam/.ssh/config)))
      (shell "(echo '0.144914') && (for DATA in prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.6,curses.1.0.6-880dd68b43c040eab9305bb25fbdd289,curses.1.0.6; do IFS=\",\"; set -- $DATA; ([ -d $1 ] || (echo \"FAILED:$2\" && mkdir -p $1 && cp ~/opam.err.log $1 && opam show $3 --raw > $1/opam)) && (shopt -s nullglob && ((tar -cvf $1.tar $1/*  && rm -R $1/* && mv $1.tar $1/content.tar) || (echo 'Empty directory'))) done) && (for DATA in prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.6,curses.1.0.6-880dd68b43c040eab9305bb25fbdd289,curses.1.0.6; do IFS=\",\"; set -- $DATA; rsync -aR --no-p ./$1 docs.ci.ocaml.org:/data/.; done) && (for DATA in prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.6,curses.1.0.6-880dd68b43c040eab9305bb25fbdd289,curses.1.0.6; do IFS=\",\"; set -- $DATA; HASH=$((sha256sum $1/content.tar | cut -d \" \" -f 1)  || echo -n 'empty'); printf \"HASHES:$2:$HASH\\n\"; done)"))
)
END-OF-SPEC

ocluster-client submit-obuilder https://github.com/ocaml/opam-repository.git b9b4a35f2e7b2933c4efdf66c532408f2be8d75c --local-file prep.spec \
--pool linux-x86_64 --connect ocluster-submission.cap --cache-hint docs-universe-prep-4.14.1 \
--secret ssh_privkey:id_rsa --secret ssh_pubkey:id_rsa.pub--secret ssh_config:ssh_config

2024-01-29 19:26.15: RETRYING: 2024-01-29/151906-voodoo-prep-0cff68 Number of retries: 0 (retriable error condition)
Building on laodoke.caelum.ci.dev
All commits already cached
Updating files:  80% (26022/32511)
Updating files:  81% (26334/32511)
Updating files:  82% (26660/32511)
Updating files:  83% (26985/32511)
Updating files:  84% (27310/32511)
Updating files:  85% (27635/32511)
Updating files:  86% (27960/32511)
Updating files:  87% (28285/32511)
Updating files:  88% (28610/32511)
Updating files:  89% (28935/32511)
Updating files:  90% (29260/32511)
Updating files:  91% (29586/32511)
Updating files:  92% (29911/32511)
Updating files:  93% (30236/32511)
Updating files:  94% (30561/32511)
Updating files:  95% (30886/32511)
Updating files:  96% (31211/32511)
Updating files:  97% (31536/32511)
Updating files:  98% (31861/32511)
Updating files:  99% (32186/32511)
Updating files: 100% (32511/32511)
Updating files: 100% (32511/32511), done.
HEAD is now at b9b4a35f2e Add Linux Mint support to conf-pkg-config.3

(build "tools" …)

(from ocaml/opam:debian-12-ocaml-4.14@sha256:8e390dbf29f7a115e5c8098ffb1a3c7234a873cf738a5ae22f3a4846122db9ef)
Unable to find image 'ocaml/opam:debian-12-ocaml-4.14@sha256:8e390dbf29f7a115e5c8098ffb1a3c7234a873cf738a5ae22f3a4846122db9ef' locally
docker.io/ocaml/opam@sha256:8e390dbf29f7a115e5c8098ffb1a3c7234a873cf738a5ae22f3a4846122db9ef: Pulling from ocaml/opam
82e8c0c7d92b: Pulling fs layer
82e8c0c7d92b: Download complete
82e8c0c7d92b: Pull complete
Digest: sha256:8e390dbf29f7a115e5c8098ffb1a3c7234a873cf738a5ae22f3a4846122db9ef
Status: Downloaded newer image for ocaml/opam@sha256:8e390dbf29f7a115e5c8098ffb1a3c7234a873cf738a5ae22f3a4846122db9ef
2024-01-29 19:21.06 ---> using "1f16aa8fbc1a229ca02cdf7d8b4234eb4608a9074cec5292a9e72517b48fb577" from cache

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

/: (workdir /home/opam)

/home/opam: (run (shell "sudo chown opam:opam /home/opam"))
2024-01-29 19:21.06 ---> using "258ae3900365106d3b475f7327e1977f1a9ae54d4b6cd6e024f1ed5ef4f3381c" from cache

/home/opam: (run (network host)
                 (shell "sudo apt-get update && sudo apt-get install -yy m4 pkg-config"))
Hit:1 http://deb.debian.org/debian bookworm InRelease
Get:2 http://deb.debian.org/debian bookworm-updates InRelease [52.1 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 [134 kB]
Fetched 234 kB in 0s (597 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
  libpkgconf3 pkgconf pkgconf-bin
Suggested packages:
  m4-doc
The following NEW packages will be installed:
  libpkgconf3 m4 pkg-config pkgconf pkgconf-bin
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 392 kB of archives.
After this operation, 969 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bookworm/main amd64 libpkgconf3 amd64 1.8.1-1 [36.1 kB]
Get:2 http://deb.debian.org/debian bookworm/main amd64 m4 amd64 1.4.19-3 [287 kB]
Get:3 http://deb.debian.org/debian bookworm/main amd64 pkgconf-bin amd64 1.8.1-1 [29.5 kB]
Get:4 http://deb.debian.org/debian bookworm/main amd64 pkgconf amd64 1.8.1-1 [25.9 kB]
Get:5 http://deb.debian.org/debian bookworm/main amd64 pkg-config amd64 1.8.1-1 [13.7 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 392 kB in 0s (1800 kB/s)
Selecting previously unselected package libpkgconf3:amd64.
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 18743 files and directories currently installed.)
Preparing to unpack .../libpkgconf3_1.8.1-1_amd64.deb ...
Unpacking libpkgconf3:amd64 (1.8.1-1) ...
Selecting previously unselected package m4.
Preparing to unpack .../archives/m4_1.4.19-3_amd64.deb ...
Unpacking m4 (1.4.19-3) ...
Selecting previously unselected package pkgconf-bin.
Preparing to unpack .../pkgconf-bin_1.8.1-1_amd64.deb ...
Unpacking pkgconf-bin (1.8.1-1) ...
Selecting previously unselected package pkgconf:amd64.
Preparing to unpack .../pkgconf_1.8.1-1_amd64.deb ...
Unpacking pkgconf:amd64 (1.8.1-1) ...
Selecting previously unselected package pkg-config:amd64.
Preparing to unpack .../pkg-config_1.8.1-1_amd64.deb ...
Unpacking pkg-config:amd64 (1.8.1-1) ...
Setting up m4 (1.4.19-3) ...
Setting up libpkgconf3:amd64 (1.8.1-1) ...
Setting up pkgconf-bin (1.8.1-1) ...
Setting up pkgconf:amd64 (1.8.1-1) ...
Setting up pkg-config:amd64 (1.8.1-1) ...
Processing triggers for libc-bin (2.36-9+deb12u3) ...
2024-01-29 19:21.06 ---> using "d64ddc7053307a6e5bac376e2af0af138c2728532db1941a0e2c7ed3dcb6923f" from cache

/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)) (opam-dune-cache (target /home/opam/.cache/dune)))
                 (network host)
                 (shell "opam pin -ny https://github.com/ocaml-doc/voodoo.git#67ccabec49b5f4d24147839291fcae7c19d3e8c9  && opam depext -iy voodoo-prep"))
[voodoo: git]
[voodoo: git]
[voodoo: git]
[voodoo: git]
[voodoo: git]
[voodoo: git]
[voodoo: git]
[voodoo: git]
[voodoo] synchronised from git+https://github.com/ocaml-doc/voodoo.git#67ccabec49b5f4d24147839291fcae7c19d3e8c9
This will pin the following packages: voodoo-prep, voodoo-lib, voodoo-gen, voodoo-do. Continue? [Y/n] y
Package voodoo-prep does not exist, create as a NEW package? [Y/n] y
[voodoo-prep.~dev: git]
[voodoo-prep.~dev: git]
[voodoo-prep.~dev: git]
[voodoo-prep.~dev: git]
[voodoo-prep.~dev: git]
[voodoo-prep.~dev: git]
[voodoo-prep.~dev: git]
[voodoo-prep.~dev: git]
[voodoo-prep.~dev] synchronised from git+https://github.com/ocaml-doc/voodoo.git#67ccabec49b5f4d24147839291fcae7c19d3e8c9
voodoo-prep is now pinned to git+https://github.com/ocaml-doc/voodoo.git#67ccabec49b5f4d24147839291fcae7c19d3e8c9 (version ~dev)
Package voodoo-lib does not exist, create as a NEW package? [Y/n] y
[voodoo-lib.~dev: git]
[voodoo-lib.~dev: git]
[voodoo-lib.~dev: git]
[voodoo-lib.~dev: git]
[voodoo-lib.~dev: git]
[voodoo-lib.~dev: git]
[voodoo-lib.~dev: git]
[voodoo-lib.~dev: git]
[voodoo-lib.~dev] synchronised from git+https://github.com/ocaml-doc/voodoo.git#67ccabec49b5f4d24147839291fcae7c19d3e8c9
voodoo-lib is now pinned to git+https://github.com/ocaml-doc/voodoo.git#67ccabec49b5f4d24147839291fcae7c19d3e8c9 (version ~dev)
Package voodoo-gen does not exist, create as a NEW package? [Y/n] y
[voodoo-gen.~dev: git]
[voodoo-gen.~dev: git]
[voodoo-gen.~dev: git]
[voodoo-gen.~dev: git]
[voodoo-gen.~dev: git]
[voodoo-gen.~dev: git]
[voodoo-gen.~dev: git]
[voodoo-gen.~dev: git]
[voodoo-gen.~dev] synchronised from git+https://github.com/ocaml-doc/voodoo.git#67ccabec49b5f4d24147839291fcae7c19d3e8c9
voodoo-gen is now pinned to git+https://github.com/ocaml-doc/voodoo.git#67ccabec49b5f4d24147839291fcae7c19d3e8c9 (version ~dev)
Package voodoo-do does not exist, create as a NEW package? [Y/n] y
[voodoo-do.~dev: git]
[voodoo-do.~dev: git]
[voodoo-do.~dev: git]
[voodoo-do.~dev: git]
[voodoo-do.~dev: git]
[voodoo-do.~dev: git]
[voodoo-do.~dev: git]
[voodoo-do.~dev: git]
[voodoo-do.~dev] synchronised from git+https://github.com/ocaml-doc/voodoo.git#67ccabec49b5f4d24147839291fcae7c19d3e8c9
voodoo-do is now pinned to git+https://github.com/ocaml-doc/voodoo.git#67ccabec49b5f4d24147839291fcae7c19d3e8c9 (version ~dev)
# Detecting depexts using vars: arch=x86_64, os=linux, os-distribution=debian, os-family=debian
# No extra OS packages requirements found.
# All required OS packages found.
# Now letting opam install the packages

<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>
[voodoo-prep.~dev] no changes from git+https://github.com/ocaml-doc/voodoo.git#67ccabec49b5f4d24147839291fcae7c19d3e8c9

The following actions will be performed:
  - install ocamlbuild       0.14.3 [required by bos]
  - install cmdliner         1.2.0  [required by voodoo-prep]
  - install dune             3.13.0 [required by voodoo-prep]
  - install ocamlfind        1.9.6  [required by bos]
  - install seq              base   [required by re]
  - install stdlib-shims     0.3.0  [required by ocamlgraph]
  - install opam-file-format 2.1.6  [required by opam-format]
  - install cppo             1.6.9  [required by opam-core]
  - install topkg            1.0.7  [required by bos]
  - install re               1.11.0 [required by opam-format]
  - install ocamlgraph       2.1.0  [required by opam-core]
  - install rresult          0.7.0  [required by bos]
  - install fmt              0.9.0  [required by bos]
  - install astring          0.8.5  [required by bos]
  - install opam-core        2.1.5  [required by opam-format]
  - install logs             0.7.0  [required by bos]
  - install fpath            0.7.3  [required by voodoo-prep]
  - install opam-format      2.1.5  [required by voodoo-prep]
  - install bos              0.2.1  [required by voodoo-prep]
  - install voodoo-prep      ~dev*
===== 20 to install =====

<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
[astring.0.8.5] found in cache
[bos.0.2.1] found in cache
[cmdliner.1.2.0] found in cache
[cppo.1.6.9] found in cache
[dune.3.13.0] found in cache
[fmt.0.9.0] found in cache
[fpath.0.7.3] found in cache
[logs.0.7.0] found in cache
[ocamlbuild.0.14.3] found in cache
[ocamlfind.1.9.6] found in cache
[ocamlgraph.2.1.0] found in cache
[opam-core.2.1.5] found in cache
[opam-file-format.2.1.6] found in cache
[opam-format.2.1.5] found in cache
[re.1.11.0] found in cache
[rresult.0.7.0] found in cache
[stdlib-shims.0.3.0] found in cache
[topkg.1.0.7] found in cache
[voodoo-prep.~dev] synchronised from git+https://github.com/ocaml-doc/voodoo.git#67ccabec49b5f4d24147839291fcae7c19d3e8c9

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> installed seq.base
-> installed cmdliner.1.2.0
-> installed ocamlfind.1.9.6
-> installed ocamlbuild.0.14.3
-> installed topkg.1.0.7
-> installed rresult.0.7.0
-> installed fmt.0.9.0
-> installed astring.0.8.5
-> installed fpath.0.7.3
-> installed logs.0.7.0
-> installed bos.0.2.1
-> installed dune.3.13.0
-> installed stdlib-shims.0.3.0
-> installed opam-file-format.2.1.6
-> installed re.1.11.0
-> installed cppo.1.6.9
-> installed ocamlgraph.2.1.0
-> installed opam-core.2.1.5
-> installed opam-format.2.1.5
-> installed voodoo-prep.~dev
Done.
# Run eval $(opam env) to update the current shell environment
2024-01-29 19:21.06 ---> using "d95d2426ec6638d4946232810cc7377b78e0b12578cf93755f6aecdc254fcd78" from cache

/home/opam: (run (shell "cp $(opam config var bin)/voodoo-prep /home/opam"))
2024-01-29 19:21.06 ---> using "200b9dc9bbc6b05727626f4e73227cdcfa87e5df3b69dfe480b404d6323d60f8" from cache
2024-01-29 19:21.06 --> finished "tools"

(from ocaml/opam:debian-12-ocaml-4.14@sha256:8e390dbf29f7a115e5c8098ffb1a3c7234a873cf738a5ae22f3a4846122db9ef)
Unable to find image 'ocaml/opam:debian-12-ocaml-4.14@sha256:8e390dbf29f7a115e5c8098ffb1a3c7234a873cf738a5ae22f3a4846122db9ef' locally
docker.io/ocaml/opam@sha256:8e390dbf29f7a115e5c8098ffb1a3c7234a873cf738a5ae22f3a4846122db9ef: Pulling from ocaml/opam
82e8c0c7d92b: Pulling fs layer
82e8c0c7d92b: Download complete
82e8c0c7d92b: Pull complete
Digest: sha256:8e390dbf29f7a115e5c8098ffb1a3c7234a873cf738a5ae22f3a4846122db9ef
Status: Downloaded newer image for ocaml/opam@sha256:8e390dbf29f7a115e5c8098ffb1a3c7234a873cf738a5ae22f3a4846122db9ef
2024-01-29 19:21.06 ---> using "1f16aa8fbc1a229ca02cdf7d8b4234eb4608a9074cec5292a9e72517b48fb577" from cache

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

/: (workdir /home/opam)

/home/opam: (run (shell "sudo chown opam:opam /home/opam"))
2024-01-29 19:21.06 ---> using "258ae3900365106d3b475f7327e1977f1a9ae54d4b6cd6e024f1ed5ef4f3381c" from cache

/home/opam: (run (shell "sudo mkdir /src"))
2024-01-29 19:21.06 ---> using "50a061015e57b489daec5893a083c81b93ec0b29b89dbcf9b55da6d4003431c6" from cache

/home/opam: (copy (src packages) (dst /src/packages))
2024-01-29 19:21.20 ---> saved as "08fb32b02300f595c6b9c245db514ecec45b08d6e343716bae33c23591221ba5"

/home/opam: (copy (src repo) (dst /src/repo))
2024-01-29 19:21.20 ---> saved as "267bfde87ede2db3d7efd38faab25a8a260b314e818aa2dac27cc59e2b0d88f5"

/home/opam: (run (network host)
                 (shell "sudo ln -f /usr/bin/opam-2.1 /usr/bin/opam && opam init --reinit -ni"))
Configuring from /home/opam/.opamrc and then 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.1, which can't be reverted.
You may want to back it up before going further.

Format upgrade done.

<><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
[default] synchronised from file:///home/opam/opam-repository
2024-01-29 19:22.31 ---> saved as "bf218c8b44f0ceac90603c99a089db1f1c0b219bf041e2d936b57a9981731da8"

/home/opam: (run (shell "opam repo remove default && opam repo add opam /src"))
Repositories removed from the selections of switch 4.14. Use '--all' to forget about them altogether.
[opam] Initialised
[NOTE] Repository opam has been added to the selections of switch 4.14 only.
       Run `opam repository add opam --all-switches|--set-default' to use it in all existing switches, or in newly created switches, respectively.

2024-01-29 19:22.53 ---> saved as "2dabbcff1af834857e4089bff5fed7996ba88b2dd0ce5003457d1e289adbd0e2"

/home/opam: (copy (from (build tools))
                  (src /home/opam/voodoo-prep)
                  (dst /home/opam/))
2024-01-29 19:22.53 ---> saved as "d6d797e8c73658b7ecc86e3e577612394e64fa463cc9402e350fc28c80320805"

/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)) (opam-dune-cache (target /home/opam/.cache/dune)))
                 (network host)
                 (shell "opam install ocamlfind.1.9.6"))
The following actions will be performed:
  - install ocamlfind 1.9.6

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved ocamlfind.1.9.6  (cached)
-> installed ocamlfind.1.9.6
Done.
# Run eval $(opam env) to update the current shell environment
2024-01-29 19:23.14 ---> saved as "5d57ea657159387535c8fc1862324260a59f263c79aed553390f6b2577c26c97"

/home/opam: (env DUNE_CACHE disabled)

/home/opam: (env DUNE_CACHE_TRANSPORT direct)

/home/opam: (env DUNE_CACHE_DUPLICATION copy)

/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)) (opam-dune-cache (target /home/opam/.cache/dune)))
                 (network host)
                 (shell "(sudo apt update) && ((opam depext -viy curses.1.0.6 ocamlfind.1.9.6 conf-pkg-config.3 conf-ncurses.1 2>&1 | tee ~/opam.err.log) || echo 'Failed to install all packages')"))

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Hit:1 http://deb.debian.org/debian bookworm InRelease
Get:2 http://deb.debian.org/debian bookworm-updates InRelease [52.1 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 [134 kB]
Fetched 234 kB in 0s (529 kB/s)
Reading package lists...
Building dependency tree...
Reading state information...
All packages are up to date.
Opam plugin "depext" may require upgrading/reinstalling. Reinstall the plugin on the current switch? [Y/n] y
The following actions will be performed:
  - recompile opam-depext 1.2.1-1

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved opam-depext.1.2.1-1  (cached)
-> removed   opam-depext.1.2.1-1
-> installed opam-depext.1.2.1-1
Done.

<><> opam-depext.1.2.1-1 installed successfully <><><><><><><><><><><><><><><><>
=> opam-depext is unnecessary when used with opam >= 2.1. Please use opam install directly instead
# Run eval $(opam env) to update the current shell environment

<><> Carrying on to "opam depext -viy curses.1.0.6 ocamlfind.1.9.6 conf-pkg-config.3 conf-ncurses.1" 

You are using opam 2.1+, where external dependency handling has been integrated: consider calling opam directly, the 'depext' plugin interface is provided for backwards compatibility only
# Detecting depexts using vars: arch=x86_64, os=linux, os-distribution=debian, os-family=debian
# The following system packages are needed:
ncurses-dev
pkg-config
[NOTE] Package ocamlfind is already installed (current version is 1.9.6).
The following actions will be performed:
  - install conf-pkg-config 3
  - install conf-ncurses    1
  - install curses          1.0.6
===== 3 to install =====

The following system packages will first need to be installed:
    ncurses-dev pkg-config

<><> Handling external dependencies <><><><><><><><><><><><><><><><><><><><><><>
Let opam run your package manager to install the required system packages?
(answer 'n' for other options) [Y/n] y
+ /usr/bin/sudo "apt-get" "install" "-qq" "-yy" "ncurses-dev" "pkg-config"
- debconf: delaying package configuration, since apt-utils is not installed
- Selecting previously unselected package libncurses6:amd64.
- (Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 18743 files and directories currently installed.)
- Preparing to unpack .../0-libncurses6_6.4-4_amd64.deb ...
- Unpacking libncurses6:amd64 (6.4-4) ...
- Selecting previously unselected package libncurses-dev:amd64.
- Preparing to unpack .../1-libncurses-dev_6.4-4_amd64.deb ...
- Unpacking libncurses-dev:amd64 (6.4-4) ...
- Selecting previously unselected package libpkgconf3:amd64.
- Preparing to unpack .../2-libpkgconf3_1.8.1-1_amd64.deb ...
- Unpacking libpkgconf3:amd64 (1.8.1-1) ...
- Selecting previously unselected package pkgconf-bin.
- Preparing to unpack .../3-pkgconf-bin_1.8.1-1_amd64.deb ...
- Unpacking pkgconf-bin (1.8.1-1) ...
- Selecting previously unselected package pkgconf:amd64.
- Preparing to unpack .../4-pkgconf_1.8.1-1_amd64.deb ...
- Unpacking pkgconf:amd64 (1.8.1-1) ...
- Selecting previously unselected package pkg-config:amd64.
- Preparing to unpack .../5-pkg-config_1.8.1-1_amd64.deb ...
- Unpacking pkg-config:amd64 (1.8.1-1) ...
- Setting up libpkgconf3:amd64 (1.8.1-1) ...
- Setting up libncurses6:amd64 (6.4-4) ...
- Setting up pkgconf-bin (1.8.1-1) ...
- Setting up libncurses-dev:amd64 (6.4-4) ...
- Setting up pkgconf:amd64 (1.8.1-1) ...
- Setting up pkg-config:amd64 (1.8.1-1) ...
- Processing triggers for libc-bin (2.36-9+deb12u3) ...

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
Processing  3/9:
Processing  4/9: [conf-pkg-config: pkg-config]
-> retrieved curses.1.0.6  (cached)
+ /usr/bin/pkg-config "--help" (CWD=/home/opam/.opam/4.14/.opam-switch/build/conf-pkg-config.3)
- usage: pkgconf [OPTIONS] [LIBRARIES]
- 
- basic options:
- 
-   --help                            this message
-   --about                           print pkgconf version and license to stdout
-   --version                         print supported pkg-config version to stdout
-   --atleast-pkgconfig-version       check whether or not pkgconf is compatible
-                                     with a specified pkg-config version
-   --errors-to-stdout                print all errors on stdout instead of stderr
-   --print-errors                    ensure all errors are printed
-   --short-errors                    be less verbose about some errors
-   --silence-errors                  explicitly be silent about errors
-   --list-all                        list all known packages
-   --list-package-names              list all known package names
-   --simulate                        simulate walking the calculated dependency graph
-   --no-cache                        do not cache already seen packages when
-                                     walking the dependency graph
-   --log-file=filename               write an audit log to a specified file
-   --with-path=path                  adds a directory to the search path
-   --define-prefix                   override the prefix variable with one that is guessed based on
-                                     the location of the .pc file
-   --dont-define-prefix              do not override the prefix variable under any circumstances
-   --prefix-variable=varname         sets the name of the variable that pkgconf considers
-                                     to be the package prefix
-   --relocate=path                   relocates a path and exits (mostly for testsuite)
-   --dont-relocate-paths             disables path relocation support
- 
- cross-compilation personality support:
- 
-   --personality=triplet|filename    sets the personality to 'triplet' or a file named 'filename'
-   --dump-personality                dumps details concerning selected personality
- 
- checking specific pkg-config database entries:
- 
-   --atleast-version                 require a specific version of a module
-   --exact-version                   require an exact version of a module
-   --max-version                     require a maximum version of a module
-   --exists                          check whether or not a module exists
-   --uninstalled                     check whether or not an uninstalled module will be used
-   --no-uninstalled                  never use uninstalled modules when satisfying dependencies
-   --no-provides                     do not use 'provides' rules to resolve dependencies
-   --maximum-traverse-depth          maximum allowed depth for dependency graph
-   --static                          be more aggressive when computing dependency graph
-                                     (for static linking)
-   --shared                          use a simplified dependency graph (usually default)
-   --pure                            optimize a static dependency graph as if it were a normal
-                                     dependency graph
-   --env-only                        look only for package entries in PKG_CONFIG_PATH
-   --ignore-conflicts                ignore 'conflicts' rules in modules
-   --validate                        validate specific .pc files for correctness
- 
- querying specific pkg-config database fields:
- 
-   --define-variable=varname=value   define variable 'varname' as 'value'
-   --variable=varname                print specified variable entry to stdout
-   --cflags                          print required CFLAGS to stdout
-   --cflags-only-I                   print required include-dir CFLAGS to stdout
-   --cflags-only-other               print required non-include-dir CFLAGS to stdout
-   --libs                            print required linker flags to stdout
-   --libs-only-L                     print required LDPATH linker flags to stdout
-   --libs-only-l                     print required LIBNAME linker flags to stdout
-   --libs-only-other                 print required other linker flags to stdout
-   --print-requires                  print required dependency frameworks to stdout
-   --print-requires-private          print required dependency frameworks for static
-                                     linking to stdout
-   --print-provides                  print provided dependencies to stdout
-   --print-variables                 print all known variables in module to stdout
-   --digraph                         print entire dependency graph in graphviz 'dot' format
-   --keep-system-cflags              keep -I/usr/include entries in cflags output
-   --keep-system-libs                keep -L/lib:/lib/i386-linux-gnu:/lib/x86_64-linux-gnu:/lib/x86_64-linux-gnux32:/lib32:/libx32:/usr/lib:/usr/lib/i386-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnux32:/usr/lib32:/usr/libx32 entries in libs output
-   --path                            show the exact filenames for any matching .pc files
-   --modversion                      print the specified module's version to stdout
-   --internal-cflags                 do not filter 'internal' cflags from output
- 
- filtering output:
- 
-   --msvc-syntax                     print translatable fragments in MSVC syntax
-   --fragment-filter=types           filter output fragments to the specified types
- 
- report bugs to <https://github.com/pkgconf/pkgconf/issues/new>.
-> compiled  conf-pkg-config.3
-> installed conf-pkg-config.3
Processing  6/9: [conf-ncurses: pkg-config ncurses]
+ /usr/bin/pkg-config "ncurses" (CWD=/home/opam/.opam/4.14/.opam-switch/build/conf-ncurses.1)
-> compiled  conf-ncurses.1
-> installed conf-ncurses.1
Processing  8/9: [curses: ./configure]
+ /home/opam/.opam/4.14/.opam-switch/build/curses.1.0.6/./configure "--enable-widec" (CWD=/home/opam/.opam/4.14/.opam-switch/build/curses.1.0.6)
- checking for gcc... gcc
- checking whether the C compiler works... yes
- checking for C compiler default output file name... a.out
- checking for suffix of executables... 
- checking whether we are cross compiling... no
- checking for suffix of object files... o
- checking whether we are using the GNU C compiler... yes
- checking whether gcc accepts -g... yes
- checking for gcc option to accept ISO C89... none needed
- checking whether gcc and cc understand -c and -o together... yes
- checking for ranlib... ranlib
- checking how to run the C preprocessor... gcc -E
- checking for grep that handles long lines and -e... /usr/bin/grep
- checking for egrep... /usr/bin/grep -E
- checking for ANSI C header files... yes
- checking for sys/types.h... yes
- checking for sys/stat.h... yes
- checking for stdlib.h... yes
- checking for string.h... yes
- checking for memory.h... yes
- checking for strings.h... 
- yes
- checking for inttypes.h... yes
- checking for stdint.h... yes
- checking for unistd.h... yes
- checking termios.h usability... yes
- checking termios.h presence... yes
- checking for termios.h... yes
- checking sys/ioctl.h usability... yes
- checking sys/ioctl.h presence... yes
- checking for sys/ioctl.h... yes
- checking windows.h usability... no
- checking windows.h presence... no
- checking for windows.h... no
- checking for working ncurses library... found in -lncursesw
- checking for term.h... found in <term.h>
- checking for wide character support in ncurses library... yes
- checking for resizeterm... yes
- checking for resize_term... yes
- configure: creating ./config.status
- config.status: creating Makefile
- config.status: creating config.ml
- config.status: creating config.h
Processing  8/9: [curses: make byte]
+ /usr/bin/make "OCAMLMAKEFILE=OCamlMakefile" "byte" (CWD=/home/opam/.opam/4.14/.opam-switch/build/curses.1.0.6)
- make[1]: Entering directory '/home/opam/.opam/4.14/.opam-switch/build/curses.1.0.6'
- ocamldep curses.mli > ._bcdi/curses.di
- ocamldep -pp "gcc -x c -E " curses.ml > ._d/curses.d
- ocamldep keys.ml > ._d/keys.d
- ocamlc -c -cc "gcc" -ccopt "-fPIC -g -O2 -DHAVE_CONFIG_H \
- 			-DPIC   \
- 			    -o ml_curses.o " ml_curses.c
- ml_curses.c: In function 'putc_callback':
- ml_curses.c:203:13: warning: "callback_exn" is deprecated: use "caml_callback_exn" instead
-   203 |   ret=callback_exn(putc_function,Val_int(c&255));
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
- In file included from ml_curses.c:216:
- functions.c: In function 'mlcurses_addchstr':
- functions.c:19:13: warning: "failwith" is deprecated: use "caml_failwith" instead
-    19 | BEG1 copie(Wosize_val(aa),0,aa) call(addchstr(t)) END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
- functions.c: In function 'mlcurses_waddchstr':
- functions.c:21:13: warning: "failwith" is deprecated: use "caml_failwith" instead
-    21 | BEG2 copie(Wosize_val(ab),0,ab) call(waddchstr(a_window(aa),t)) END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
- functions.c: In function 'mlcurses_mvaddchstr':
- functions.c:23:13: warning: "failwith" is deprecated: use "caml_failwith" instead
-    23 | BEG3 copie(Wosize_val(ac),0,ac) call(mvaddchstr(a_int(aa),a_int(ab),t)) END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- functions.c: In function 'mlcurses_mvwaddchstr':
- functions.c:25:13: warning: "failwith" is deprecated: use "caml_failwith" instead
-    25 | BEG4 copie(Wosize_val(ad),0,ad)
-       |             ^~~~~~~~~~~~~~~~~~~                                        
- functions.c: In function 'mlcurses_addchnstr':
- functions.c:29:13: warning: "failwith" is deprecated: use "caml_failwith" instead
-    29 |   copie(Int_val(ac),i0,aa)
-       |             ^~~~~~~~~~~~~~                                             
- functions.c: In function 'mlcurses_waddchnstr':
- functions.c:33:13: warning: "failwith" is deprecated: use "caml_failwith" instead
-    33 |   copie(Int_val(ad),i0,ab)
-       |             ^~~~~~~~~~~~~~                                             
- functions.c: In function 'mlcurses_mvaddchnstr':
- functions.c:37:13: warning: "failwith" is deprecated: use "caml_failwith" instead
-    37 |   copie(Int_val(ae),i0,ac)
-       |             ^~~~~~~~~~~~~~                                             
- functions.c: In function 'mlcurses_mvwaddchnstr_native':
- functions.c:41:13: warning: "failwith" is deprecated: use "caml_failwith" instead
-    41 |   copie(Int_val(af),i0,ad)
-       |             ^~~~~~~~~~~~~~                                             
- functions.c: In function 'mlcurses_color_content':
- functions.c:162:13: warning: "alloc_tuple" is deprecated: use "caml_alloc_tuple" instead
-   162 |   x=y=z=-1; r_int_int_int(x,y,z); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~                                        
- functions.c: In function 'mlcurses_pair_content':
- functions.c:165:13: warning: "alloc_tuple" is deprecated: use "caml_alloc_tuple" instead
-   165 |   r_int_int(x,y); END
-       |             ^~~~~~~~~                                                        
- functions.c: In function 'mlcurses_getstr':
- functions.c:195:13: warning: "string_length" is deprecated: use "caml_string_length" instead
-   195 | BEG1 r_err(getnstr(a_string(aa),string_length(aa))); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
- In file included from ml_curses.c:7:
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:290:24: warning: passing argument 2 of 'wgetnstr' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
-   290 | #define String_val(x) ((const char *) Bp_val(x))
-       |                       ~^~~~~~~~~~~~~~~~~~~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/memory.h:462:29: note: in definition of macro 'CAMLreturnT'
-   462 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- ml_curses.c:51:25: note: in expansion of macro 'CAMLreturn'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                         ^~~~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:79:20: note: in expansion of macro 'Val_long'
-    79 | #define Val_int(x) Val_long(x)
-       |                    ^~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:387:21: note: in expansion of macro 'Val_int'
-   387 | #define Val_bool(x) Val_int((x) != 0)
-       |                     ^~~~~~~
- ml_curses.c:51:36: note: in expansion of macro 'Val_bool'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                                    ^~~~~~~~
- functions.c:195:6: note: in expansion of macro 'r_err'
-   195 | BEG1 r_err(getnstr(a_string(aa),string_length(aa))); END
-       |      ^~~~~
- ml_curses.c:88:25: note: in expansion of macro 'String_val'
-    88 | #define a_string(a)     String_val(a)
-       |                         ^~~~~~~~~~
- functions.c:195:20: note: in expansion of macro 'a_string'
-   195 | BEG1 r_err(getnstr(a_string(aa),string_length(aa))); END
-       |                    ^~~~~~~~
- In file included from ml_curses.c:22:
- /usr/include/curses.h:853:47: note: expected 'char *' but argument is of type 'const char *'
-   853 | extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int);              /* implemented */
-       |                                               ^~~~~~
- functions.c: In function 'mlcurses_wgetstr':
- functions.c:197:13: warning: "string_length" is deprecated: use "caml_string_length" instead
-   197 | BEG2 r_err(wgetnstr(a_window(aa),a_string(ab),string_length(ab))); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:290:24: warning: passing argument 2 of 'wgetnstr' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
-   290 | #define String_val(x) ((const char *) Bp_val(x))
-       |                       ~^~~~~~~~~~~~~~~~~~~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/memory.h:462:29: note: in definition of macro 'CAMLreturnT'
-   462 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- ml_curses.c:51:25: note: in expansion of macro 'CAMLreturn'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                         ^~~~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:79:20: note: in expansion of macro 'Val_long'
-    79 | #define Val_int(x) Val_long(x)
-       |                    ^~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:387:21: note: in expansion of macro 'Val_int'
-   387 | #define Val_bool(x) Val_int((x) != 0)
-       |                     ^~~~~~~
- ml_curses.c:51:36: note: in expansion of macro 'Val_bool'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                                    ^~~~~~~~
- functions.c:197:6: note: in expansion of macro 'r_err'
-   197 | BEG2 r_err(wgetnstr(a_window(aa),a_string(ab),string_length(ab))); END
-       |      ^~~~~
- ml_curses.c:88:25: note: in expansion of macro 'String_val'
-    88 | #define a_string(a)     String_val(a)
-       |                         ^~~~~~~~~~
- functions.c:197:34: note: in expansion of macro 'a_string'
-   197 | BEG2 r_err(wgetnstr(a_window(aa),a_string(ab),string_length(ab))); END
-       |                                  ^~~~~~~~
- /usr/include/curses.h:853:47: note: expected 'char *' but argument is of type 'const char *'
-   853 | extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int);              /* implemented */
-       |                                               ^~~~~~
- functions.c: In function 'mlcurses_mvgetstr':
- functions.c:199:13: warning: "string_length" is deprecated: use "caml_string_length" instead
-   199 | BEG3 r_err(mvgetnstr(a_int(aa),a_int(ab),a_string(ac),string_length(ac))); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:290:24: warning: passing argument 2 of 'wgetnstr' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
-   290 | #define String_val(x) ((const char *) Bp_val(x))
- /home/opam/.opam/4.14/lib/ocaml/caml/memory.h:462:29: note: in definition of macro 'CAMLreturnT'
-   462 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- ml_curses.c:51:25: note: in expansion of macro 'CAMLreturn'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                         ^~~~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:79:20: note: in expansion of macro 'Val_long'
-    79 | #define Val_int(x) Val_long(x)
-       |                    ^~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:387:21: note: in expansion of macro 'Val_int'
-   387 | #define Val_bool(x) Val_int((x) != 0)
-       |                     ^~~~~~~
- ml_curses.c:51:36: note: in expansion of macro 'Val_bool'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                                    ^~~~~~~~
- functions.c:199:6: note: in expansion of macro 'r_err'
-   199 | BEG3 r_err(mvgetnstr(a_int(aa),a_int(ab),a_string(ac),string_length(ac))); END
-       |      ^~~~~
- ml_curses.c:88:25: note: in expansion of macro 'String_val'
-    88 | #define a_string(a)     String_val(a)
-       |                         ^~~~~~~~~~
- functions.c:199:42: note: in expansion of macro 'a_string'
-   199 | BEG3 r_err(mvgetnstr(a_int(aa),a_int(ab),a_string(ac),string_length(ac))); END
-       |                                          ^~~~~~~~
- /usr/include/curses.h:853:47: note: expected 'char *' but argument is of type 'const char *'
-   853 | extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int);              /* implemented */
-       |                                               ^~~~~~
- functions.c: In function 'mlcurses_mvwgetstr':
- functions.c:202:13: warning: "string_length" is deprecated: use "caml_string_length" instead
-   202 |   string_length(ad))); END
-       |             ^~~~~~~~~~~~~~                                                       
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:290:24: warning: passing argument 2 of 'wgetnstr' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
-   290 | #define String_val(x) ((const char *) Bp_val(x))
- /home/opam/.opam/4.14/lib/ocaml/caml/memory.h:462:29: note: in definition of macro 'CAMLreturnT'
-   462 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- ml_curses.c:51:25: note: in expansion of macro 'CAMLreturn'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                         ^~~~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:79:20: note: in expansion of macro 'Val_long'
-    79 | #define Val_int(x) Val_long(x)
-       |                    ^~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:387:21: note: in expansion of macro 'Val_int'
-   387 | #define Val_bool(x) Val_int((x) != 0)
-       |                     ^~~~~~~
- ml_curses.c:51:36: note: in expansion of macro 'Val_bool'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                                    ^~~~~~~~
- functions.c:201:6: note: in expansion of macro 'r_err'
-   201 | BEG4 r_err(mvwgetnstr(a_window(aa),a_int(ab),a_int(ac),a_string(ad),
-       |      ^~~~~
- ml_curses.c:88:25: note: in expansion of macro 'String_val'
-    88 | #define a_string(a)     String_val(a)
-       |                         ^~~~~~~~~~
- functions.c:201:56: note: in expansion of macro 'a_string'
-   201 | BEG4 r_err(mvwgetnstr(a_window(aa),a_int(ab),a_int(ac),a_string(ad),
-       |                                                        ^~~~~~~~
- /usr/include/curses.h:853:47: note: expected 'char *' but argument is of type 'const char *'
-   853 | extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int);              /* implemented */
-       |                                               ^~~~~~
- functions.c: In function 'mlcurses_getnstr':
- functions.c:204:32: warning: passing argument 2 of 'wgetnstr' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
-   204 | BEG3 r_err(getnstr(a_string(aa)+a_int(ab),a_int(ac))); END
- /home/opam/.opam/4.14/lib/ocaml/caml/memory.h:462:29: note: in definition of macro 'CAMLreturnT'
-   462 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- ml_curses.c:51:25: note: in expansion of macro 'CAMLreturn'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                         ^~~~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:79:20: note: in expansion of macro 'Val_long'
-    79 | #define Val_int(x) Val_long(x)
-       |                    ^~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:387:21: note: in expansion of macro 'Val_int'
-   387 | #define Val_bool(x) Val_int((x) != 0)
-       |                     ^~~~~~~
- ml_curses.c:51:36: note: in expansion of macro 'Val_bool'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                                    ^~~~~~~~
- functions.c:204:6: note: in expansion of macro 'r_err'
-   204 | BEG3 r_err(getnstr(a_string(aa)+a_int(ab),a_int(ac))); END
-       |      ^~~~~
- /usr/include/curses.h:853:47: note: expected 'char *' but argument is of type 'const char *'
-   853 | extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int);              /* implemented */
-       |                                               ^~~~~~
- functions.c: In function 'mlcurses_wgetnstr':
- functions.c:206:46: warning: passing argument 2 of 'wgetnstr' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
-   206 | BEG4 r_err(wgetnstr(a_window(aa),a_string(ab)+a_int(ac),a_int(ad))); END
- /home/opam/.opam/4.14/lib/ocaml/caml/memory.h:462:29: note: in definition of macro 'CAMLreturnT'
-   462 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- ml_curses.c:51:25: note: in expansion of macro 'CAMLreturn'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                         ^~~~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:79:20: note: in expansion of macro 'Val_long'
-    79 | #define Val_int(x) Val_long(x)
-       |                    ^~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:387:21: note: in expansion of macro 'Val_int'
-   387 | #define Val_bool(x) Val_int((x) != 0)
-       |                     ^~~~~~~
- ml_curses.c:51:36: note: in expansion of macro 'Val_bool'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                                    ^~~~~~~~
- functions.c:206:6: note: in expansion of macro 'r_err'
-   206 | BEG4 r_err(wgetnstr(a_window(aa),a_string(ab)+a_int(ac),a_int(ad))); END
-       |      ^~~~~
- /usr/include/curses.h:853:47: note: expected 'char *' but argument is of type 'const char *'
-   853 | extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int);              /* implemented */
-       |                                               ^~~~~~
- functions.c: In function 'mlcurses_mvgetnstr':
- functions.c:208:54: warning: passing argument 2 of 'wgetnstr' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
-   208 | BEG5 r_err(mvgetnstr(a_int(aa),a_int(ab),a_string(ac)+a_int(ad),
-       |                                                      ^
- /home/opam/.opam/4.14/lib/ocaml/caml/memory.h:462:29: note: in definition of macro 'CAMLreturnT'
-   462 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- ml_curses.c:51:25: note: in expansion of macro 'CAMLreturn'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                         ^~~~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:79:20: note: in expansion of macro 'Val_long'
-    79 | #define Val_int(x) Val_long(x)
-       |                    ^~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:387:21: note: in expansion of macro 'Val_int'
-   387 | #define Val_bool(x) Val_int((x) != 0)
-       |                     ^~~~~~~
- ml_curses.c:51:36: note: in expansion of macro 'Val_bool'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                                    ^~~~~~~~
- functions.c:208:6: note: in expansion of macro 'r_err'
-   208 | BEG5 r_err(mvgetnstr(a_int(aa),a_int(ab),a_string(ac)+a_int(ad),
-       |      ^~~~~
- /usr/include/curses.h:853:47: note: expected 'char *' but argument is of type 'const char *'
-   853 | extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int);              /* implemented */
-       |                                               ^~~~~~
- functions.c: In function 'mlcurses_mvwgetnstr_native':
- functions.c:211:68: warning: passing argument 2 of 'wgetnstr' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
-   211 | BEG6 r_err(mvwgetnstr(a_window(aa),a_int(ab),a_int(ac),a_string(ad)+a_int(ae),
-       |                                                                    ^
- /home/opam/.opam/4.14/lib/ocaml/caml/memory.h:462:29: note: in definition of macro 'CAMLreturnT'
-   462 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- ml_curses.c:51:25: note: in expansion of macro 'CAMLreturn'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                         ^~~~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:79:20: note: in expansion of macro 'Val_long'
-    79 | #define Val_int(x) Val_long(x)
-       |                    ^~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:387:21: note: in expansion of macro 'Val_int'
-   387 | #define Val_bool(x) Val_int((x) != 0)
-       |                     ^~~~~~~
- ml_curses.c:51:36: note: in expansion of macro 'Val_bool'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                                    ^~~~~~~~
- functions.c:211:6: note: in expansion of macro 'r_err'
-   211 | BEG6 r_err(mvwgetnstr(a_window(aa),a_int(ab),a_int(ac),a_string(ad)+a_int(ae),
-       |      ^~~~~
- /usr/include/curses.h:853:47: note: expected 'char *' but argument is of type 'const char *'
-   853 | extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int);              /* implemented */
-       |                                               ^~~~~~
- functions.c: In function 'mlcurses_getyx':
- functions.c:217:13: warning: "alloc_tuple" is deprecated: use "caml_alloc_tuple" instead
-   217 | BEG1 int x,y; getyx(a_window(aa),y,x); r_int_int(y,x); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
- functions.c: In function 'mlcurses_getparyx':
- functions.c:219:13: warning: "alloc_tuple" is deprecated: use "caml_alloc_tuple" instead
-   219 | BEG1 int x,y; getparyx(a_window(aa),y,x); r_int_int(y,x); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
- functions.c: In function 'mlcurses_getbegyx':
- functions.c:221:13: warning: "alloc_tuple" is deprecated: use "caml_alloc_tuple" instead
-   221 | BEG1 int x,y; getbegyx(a_window(aa),y,x); r_int_int(y,x); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
- functions.c: In function 'mlcurses_getmaxyx':
- functions.c:223:13: warning: "alloc_tuple" is deprecated: use "caml_alloc_tuple" instead
-   223 | BEG1 int x,y; getmaxyx(a_window(aa),y,x); r_int_int(y,x); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
- functions.c: In function 'mlcurses_newterm':
- functions.c:296:13: warning: "alloc_tuple" is deprecated: use "caml_alloc_tuple" instead
-   296 |   r=alloc_tuple(3);
-       |             ^~~~~~~                                                          
- functions.c:300:13: warning: "failwith" is deprecated: use "caml_failwith" instead
-   300 |   if(s==NULL){ fclose(fa); fclose(fb); failwith("newterm"); }
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
- functions.c: In function 'mlcurses_insstr':
- functions.c:316:13: warning: "string_length" is deprecated: use "caml_string_length" instead
-   316 | BEG1 r_err(insnstr(a_string(aa),string_length(aa))); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
- functions.c: In function 'mlcurses_winsstr':
- functions.c:318:13: warning: "string_length" is deprecated: use "caml_string_length" instead
-   318 | BEG2 r_err(winsnstr(a_window(aa),a_string(ab),string_length(ab))); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
- functions.c: In function 'mlcurses_mvinsstr':
- functions.c:320:13: warning: "string_length" is deprecated: use "caml_string_length" instead
-   320 | BEG3 r_err(mvinsnstr(a_int(aa),a_int(ab),a_string(ac),string_length(ac))); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
- functions.c: In function 'mlcurses_mvwinsstr':
- functions.c:323:13: warning: "string_length" is deprecated: use "caml_string_length" instead
-   323 |   a_string(ad),string_length(ad))); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~                                          
- functions.c: In function 'mlcurses_instr':
- functions.c:337:13: warning: "string_length" is deprecated: use "caml_string_length" instead
-   337 | BEG1 r_err(innstr(a_string(aa),string_length(aa))); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:290:24: warning: passing argument 2 of 'winnstr' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
-   290 | #define String_val(x) ((const char *) Bp_val(x))
- /home/opam/.opam/4.14/lib/ocaml/caml/memory.h:462:29: note: in definition of macro 'CAMLreturnT'
-   462 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- ml_curses.c:51:25: note: in expansion of macro 'CAMLreturn'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                         ^~~~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:79:20: note: in expansion of macro 'Val_long'
-    79 | #define Val_int(x) Val_long(x)
-       |                    ^~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:387:21: note: in expansion of macro 'Val_int'
-   387 | #define Val_bool(x) Val_int((x) != 0)
-       |                     ^~~~~~~
- ml_curses.c:51:36: note: in expansion of macro 'Val_bool'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                                    ^~~~~~~~
- functions.c:337:6: note: in expansion of macro 'r_err'
-   337 | BEG1 r_err(innstr(a_string(aa),string_length(aa))); END
-       |      ^~~~~
- ml_curses.c:88:25: note: in expansion of macro 'String_val'
-    88 | #define a_string(a)     String_val(a)
-       |                         ^~~~~~~~~~
- functions.c:337:19: note: in expansion of macro 'a_string'
-   337 | BEG1 r_err(innstr(a_string(aa),string_length(aa))); END
-       |                   ^~~~~~~~
- /usr/include/curses.h:859:47: note: expected 'char *' but argument is of type 'const char *'
-   859 | extern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int);             /* implemented */
-       |                                               ^~~~~~
- functions.c: In function 'mlcurses_winstr':
- functions.c:339:13: warning: "string_length" is deprecated: use "caml_string_length" instead
-   339 | BEG2 r_err(winnstr(a_window(aa),a_string(ab),string_length(ab))); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:290:24: warning: passing argument 2 of 'winnstr' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
-   290 | #define String_val(x) ((const char *) Bp_val(x))
-       |                       ~^~~~~~~~~~~~~~~~~~~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/memory.h:462:29: note: in definition of macro 'CAMLreturnT'
-   462 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- ml_curses.c:51:25: note: in expansion of macro 'CAMLreturn'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                         ^~~~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:79:20: note: in expansion of macro 'Val_long'
-    79 | #define Val_int(x) Val_long(x)
-       |                    ^~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:387:21: note: in expansion of macro 'Val_int'
-   387 | #define Val_bool(x) Val_int((x) != 0)
-       |                     ^~~~~~~
- ml_curses.c:51:36: note: in expansion of macro 'Val_bool'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                                    ^~~~~~~~
- functions.c:339:6: note: in expansion of macro 'r_err'
-   339 | BEG2 r_err(winnstr(a_window(aa),a_string(ab),string_length(ab))); END
-       |      ^~~~~
- ml_curses.c:88:25: note: in expansion of macro 'String_val'
-    88 | #define a_string(a)     String_val(a)
-       |                         ^~~~~~~~~~
- functions.c:339:33: note: in expansion of macro 'a_string'
-   339 | BEG2 r_err(winnstr(a_window(aa),a_string(ab),string_length(ab))); END
-       |                                 ^~~~~~~~
- /usr/include/curses.h:859:47: note: expected 'char *' but argument is of type 'const char *'
-   859 | extern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int);             /* implemented */
-       |                                               ^~~~~~
- functions.c: In function 'mlcurses_mvinstr':
- functions.c:341:13: warning: "string_length" is deprecated: use "caml_string_length" instead
-   341 | BEG3 r_err(mvinnstr(a_int(aa),a_int(ab),a_string(ac),string_length(ac))); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:290:24: warning: passing argument 2 of 'winnstr' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
-   290 | #define String_val(x) ((const char *) Bp_val(x))
- /home/opam/.opam/4.14/lib/ocaml/caml/memory.h:462:29: note: in definition of macro 'CAMLreturnT'
-   462 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- ml_curses.c:51:25: note: in expansion of macro 'CAMLreturn'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                         ^~~~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:79:20: note: in expansion of macro 'Val_long'
-    79 | #define Val_int(x) Val_long(x)
-       |                    ^~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:387:21: note: in expansion of macro 'Val_int'
-   387 | #define Val_bool(x) Val_int((x) != 0)
-       |                     ^~~~~~~
- ml_curses.c:51:36: note: in expansion of macro 'Val_bool'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                                    ^~~~~~~~
- functions.c:341:6: note: in expansion of macro 'r_err'
-   341 | BEG3 r_err(mvinnstr(a_int(aa),a_int(ab),a_string(ac),string_length(ac))); END
-       |      ^~~~~
- ml_curses.c:88:25: note: in expansion of macro 'String_val'
-    88 | #define a_string(a)     String_val(a)
-       |                         ^~~~~~~~~~
- functions.c:341:41: note: in expansion of macro 'a_string'
-   341 | BEG3 r_err(mvinnstr(a_int(aa),a_int(ab),a_string(ac),string_length(ac))); END
-       |                                         ^~~~~~~~
- /usr/include/curses.h:859:47: note: expected 'char *' but argument is of type 'const char *'
-   859 | extern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int);             /* implemented */
-       |                                               ^~~~~~
- functions.c: In function 'mlcurses_mvwinstr':
- functions.c:344:13: warning: "string_length" is deprecated: use "caml_string_length" instead
-   344 |   a_string(ad),string_length(ad))); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~                                          
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:290:24: warning: passing argument 2 of 'winnstr' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
-   290 | #define String_val(x) ((const char *) Bp_val(x))
- /home/opam/.opam/4.14/lib/ocaml/caml/memory.h:462:29: note: in definition of macro 'CAMLreturnT'
-   462 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- ml_curses.c:51:25: note: in expansion of macro 'CAMLreturn'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                         ^~~~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:79:20: note: in expansion of macro 'Val_long'
-    79 | #define Val_int(x) Val_long(x)
-       |                    ^~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:387:21: note: in expansion of macro 'Val_int'
-   387 | #define Val_bool(x) Val_int((x) != 0)
-       |                     ^~~~~~~
- ml_curses.c:51:36: note: in expansion of macro 'Val_bool'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                                    ^~~~~~~~
- functions.c:343:6: note: in expansion of macro 'r_err'
-   343 | BEG4 r_err(mvwinnstr(a_window(aa),a_int(ab),a_int(ac),
-       |      ^~~~~
- ml_curses.c:88:25: note: in expansion of macro 'String_val'
-    88 | #define a_string(a)     String_val(a)
-       |                         ^~~~~~~~~~
- functions.c:344:3: note: in expansion of macro 'a_string'
-   344 |   a_string(ad),string_length(ad))); END
-       |   ^~~~~~~~
- /usr/include/curses.h:859:47: note: expected 'char *' but argument is of type 'const char *'
-   859 | extern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int);             /* implemented */
-       |                                               ^~~~~~
- functions.c: In function 'mlcurses_innstr':
- functions.c:346:31: warning: passing argument 2 of 'winnstr' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
-   346 | BEG3 r_err(innstr(a_string(aa)+a_int(ab),a_int(ac))); END
-       |                               ^
- /home/opam/.opam/4.14/lib/ocaml/caml/memory.h:462:29: note: in definition of macro 'CAMLreturnT'
-   462 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- ml_curses.c:51:25: note: in expansion of macro 'CAMLreturn'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                         ^~~~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:79:20: note: in expansion of macro 'Val_long'
-    79 | #define Val_int(x) Val_long(x)
-       |                    ^~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:387:21: note: in expansion of macro 'Val_int'
-   387 | #define Val_bool(x) Val_int((x) != 0)
-       |                     ^~~~~~~
- ml_curses.c:51:36: note: in expansion of macro 'Val_bool'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                                    ^~~~~~~~
- functions.c:346:6: note: in expansion of macro 'r_err'
-   346 | BEG3 r_err(innstr(a_string(aa)+a_int(ab),a_int(ac))); END
-       |      ^~~~~
- /usr/include/curses.h:859:47: note: expected 'char *' but argument is of type 'const char *'
-   859 | extern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int);             /* implemented */
-       |                                               ^~~~~~
- functions.c: In function 'mlcurses_winnstr':
- functions.c:348:45: warning: passing argument 2 of 'winnstr' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
-   348 | BEG4 r_err(winnstr(a_window(aa),a_string(ab)+a_int(ac),a_int(ad))); END
- /home/opam/.opam/4.14/lib/ocaml/caml/memory.h:462:29: note: in definition of macro 'CAMLreturnT'
-   462 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- ml_curses.c:51:25: note: in expansion of macro 'CAMLreturn'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                         ^~~~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:79:20: note: in expansion of macro 'Val_long'
-    79 | #define Val_int(x) Val_long(x)
-       |                    ^~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:387:21: note: in expansion of macro 'Val_int'
-   387 | #define Val_bool(x) Val_int((x) != 0)
-       |                     ^~~~~~~
- ml_curses.c:51:36: note: in expansion of macro 'Val_bool'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                                    ^~~~~~~~
- functions.c:348:6: note: in expansion of macro 'r_err'
-   348 | BEG4 r_err(winnstr(a_window(aa),a_string(ab)+a_int(ac),a_int(ad))); END
-       |      ^~~~~
- /usr/include/curses.h:859:47: note: expected 'char *' but argument is of type 'const char *'
-   859 | extern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int);             /* implemented */
-       |                                               ^~~~~~
- functions.c: In function 'mlcurses_mvinnstr':
- functions.c:350:53: warning: passing argument 2 of 'winnstr' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
-   350 | BEG5 r_err(mvinnstr(a_int(aa),a_int(ab),a_string(ac)+a_int(ad),a_int(ae))); END
-       |                                                     ^
- /home/opam/.opam/4.14/lib/ocaml/caml/memory.h:462:29: note: in definition of macro 'CAMLreturnT'
-   462 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- ml_curses.c:51:25: note: in expansion of macro 'CAMLreturn'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                         ^~~~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:79:20: note: in expansion of macro 'Val_long'
-    79 | #define Val_int(x) Val_long(x)
-       |                    ^~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:387:21: note: in expansion of macro 'Val_int'
-   387 | #define Val_bool(x) Val_int((x) != 0)
-       |                     ^~~~~~~
- ml_curses.c:51:36: note: in expansion of macro 'Val_bool'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                                    ^~~~~~~~
- functions.c:350:6: note: in expansion of macro 'r_err'
-   350 | BEG5 r_err(mvinnstr(a_int(aa),a_int(ab),a_string(ac)+a_int(ad),a_int(ae))); END
-       |      ^~~~~
- /usr/include/curses.h:859:47: note: expected 'char *' but argument is of type 'const char *'
-   859 | extern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int);             /* implemented */
-       |                                               ^~~~~~
- functions.c: In function 'mlcurses_mvwinnstr_native':
- functions.c:353:15: warning: passing argument 2 of 'winnstr' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
-   353 |   a_string(ad)+a_int(ae),a_int(af))); END
-       |               ^
- /home/opam/.opam/4.14/lib/ocaml/caml/memory.h:462:29: note: in definition of macro 'CAMLreturnT'
-   462 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- ml_curses.c:51:25: note: in expansion of macro 'CAMLreturn'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                         ^~~~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:79:20: note: in expansion of macro 'Val_long'
-    79 | #define Val_int(x) Val_long(x)
-       |                    ^~~~~~~~
- /home/opam/.opam/4.14/lib/ocaml/caml/mlvalues.h:387:21: note: in expansion of macro 'Val_int'
-   387 | #define Val_bool(x) Val_int((x) != 0)
-       |                     ^~~~~~~
- ml_curses.c:51:36: note: in expansion of macro 'Val_bool'
-    51 | #define r_err(f)        CAMLreturn(Val_bool((f)!=ERR))
-       |                                    ^~~~~~~~
- functions.c:352:6: note: in expansion of macro 'r_err'
-   352 | BEG6 r_err(mvwinnstr(a_window(aa),a_int(ab),a_int(ac),
-       |      ^~~~~
- /usr/include/curses.h:859:47: note: expected 'char *' but argument is of type 'const char *'
-   859 | extern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int);             /* implemented */
-       |                                               ^~~~~~
- functions.c: In function 'mlcurses_getsyx':
- functions.c:387:13: warning: "alloc_tuple" is deprecated: use "caml_alloc_tuple" instead
-   387 | BEG0 int x,y; getsyx(y,x); r_int_int(y,x); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
- functions.c: In function 'mlcurses_get_ripoff':
- functions.c:395:13: warning: "failwith" is deprecated: use "caml_failwith" instead
-   395 | BEG0 if(ripoff_niv==0) failwith("get_ripoff"); ripoff_niv--;
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
- functions.c:396:13: warning: "alloc_tuple" is deprecated: use "caml_alloc_tuple" instead
-   396 |   r_window_int(ripoff_w[ripoff_niv],ripoff_l[ripoff_niv]); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
- functions.c: In function 'mlcurses_mousemask':
- functions.c:404:13: warning: "alloc_tuple" is deprecated: use "caml_alloc_tuple" instead
-   404 | BEG1 mmask_t r=1234,n=Int_val(aa); n=mousemask(n,&r); r_int_int(n,r); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
- functions.c: In function 'mlcurses_slk_label':
- functions.c:484:13: warning: "failwith" is deprecated: use "caml_failwith" instead
-   484 | ML1(slk_label,string,int)
-       |             ^~~~~~~~~~~~~                                              
- functions.c:484:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
-   484 | ML1(slk_label,string,int)
-       |             ^~~~~~~~~~~~~                                                    
- functions.c: In function 'mlcurses_longname':
- functions.c:499:13: warning: "failwith" is deprecated: use "caml_failwith" instead
-   499 | ML0(longname,string)
-       |             ^~~~~~~~                                                   
- functions.c:499:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
-   499 | ML0(longname,string)
-       |             ^~~~~~~~                                                         
- functions.c: In function 'mlcurses_termname':
- functions.c:501:13: warning: "failwith" is deprecated: use "caml_failwith" instead
-   501 | ML0(termname,string)
-       |             ^~~~~~~~                                                   
- functions.c:501:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
-   501 | ML0(termname,string)
-       |             ^~~~~~~~                                                         
- functions.c: In function 'mlcurses_tgetstr':
- functions.c:510:13: warning: "failwith" is deprecated: use "caml_failwith" instead
-   510 | BEG1 r_string(tgetstr(String_val(aa),NULL)); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
- functions.c:510:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
-   510 | BEG1 r_string(tgetstr(String_val(aa),NULL)); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
- functions.c: In function 'mlcurses_tgoto':
- functions.c:511:13: warning: "failwith" is deprecated: use "caml_failwith" instead
-   511 | ML3(tgoto,string,string,int,int)
-       |             ^~~~~~~~~~~~~~~~~~~~                                       
- functions.c:511:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
-   511 | ML3(tgoto,string,string,int,int)
-       |             ^~~~~~~~~~~~~~~~~~~~                                             
- functions.c: In function 'mlcurses_tigetstr':
- functions.c:532:13: warning: "failwith" is deprecated: use "caml_failwith" instead
-   532 |   if((s==NULL)||(s==(char * )-1)) failwith("tigetstr");
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
- functions.c:533:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
-   533 |   CAMLreturn(copy_string(s)); END
-       |             ^~~~~~~~~~~~~~~~~~~~~                                            
- functions.c: In function 'mlcurses_tparm':
- functions.c:556:13: warning: "failwith" is deprecated: use "caml_failwith" instead
-   556 |     t[5],t[6],t[7],t[8],t[9])); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~                                    
- functions.c:556:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
-   556 |     t[5],t[6],t[7],t[8],t[9])); END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~                                          
- functions.c: In function 'mlcurses_bool_terminfo_variable':
- functions.c:577:13: warning: "alloc_tuple" is deprecated: use "caml_alloc_tuple" instead
-   577 | ML1d(bool_terminfo_variable,string*string*string,int) BEG1 arrayret(bool) END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- functions.c:577:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
- functions.c:577:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
- functions.c:577:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
- functions.c:577:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
- functions.c: In function 'mlcurses_num_terminfo_variable':
- functions.c:578:13: warning: "alloc_tuple" is deprecated: use "caml_alloc_tuple" instead
-   578 | ML1d(num_terminfo_variable,string*string*string,int) BEG1 arrayret(num) END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
- functions.c:578:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
- functions.c:578:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
- functions.c:578:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
- functions.c:578:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
- functions.c: In function 'mlcurses_str_terminfo_variable':
- functions.c:579:13: warning: "alloc_tuple" is deprecated: use "caml_alloc_tuple" instead
-   579 | ML1d(str_terminfo_variable,string*string*string,int) BEG1 arrayret(str) END
-       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
- functions.c:579:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
- functions.c:579:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
- functions.c:579:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
- functions.c:579:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
- functions.c: In function 'mlcurses_unctrl':
- functions.c:597:5: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
-   597 | ML1(unctrl,string,chtype)
-       |     ^~~~~~
- ml_curses.c:77:15: note: in definition of macro 'r_string'
-    77 |   { char *ret=f; \
-       |               ^
- functions.c:597:1: note: in expansion of macro 'ML1'
-   597 | ML1(unctrl,string,chtype)
-       | ^~~
- functions.c:597:13: warning: "failwith" is deprecated: use "caml_failwith" instead
-   597 | ML1(unctrl,string,chtype)
-       |             ^~~~~~~~~~~~~                                              
- functions.c:597:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
-   597 | ML1(unctrl,string,chtype)
-       |             ^~~~~~~~~~~~~                                                    
- functions.c: In function 'mlcurses_keyname':
- functions.c:598:5: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
-   598 | ML1(keyname,string,int)
-       |     ^~~~~~~
- ml_curses.c:77:15: note: in definition of macro 'r_string'
-    77 |   { char *ret=f; \
-       |               ^
- functions.c:598:1: note: in expansion of macro 'ML1'
-   598 | ML1(keyname,string,int)
-       | ^~~
- functions.c:598:13: warning: "failwith" is deprecated: use "caml_failwith" instead
-   598 | ML1(keyname,string,int)
-       |             ^~~~~~~~~~~                                                
- functions.c:598:13: warning: "copy_string" is deprecated: use "caml_copy_string" instead
-   598 | ML1(keyname,string,int)
-       |             ^~~~~~~~~~~                                                      
- functions.c: In function 'mlcurses_get_acs_codes':
- functions.c:629:13: warning: "alloc_tuple" is deprecated: use "caml_alloc_tuple" instead
-   629 |   tr=alloc_tuple(32);
-       |             ^~~~~~~~~                                                        
- functions.c: In function 'mlcurses_get_size':
- functions.c:658:13: warning: "alloc_tuple" is deprecated: use "caml_alloc_tuple" instead
-   658 |   r_int_int(ws.ws_row,ws.ws_col);
-       |             ^~~~~~~~~~~~~~~~~~~~~                                            
- functions.c: In function 'mlcurses_get_size_fd':
- functions.c:672:13: warning: "alloc_tuple" is deprecated: use "caml_alloc_tuple" instead
-   672 |   r_int_int(ws.ws_row,ws.ws_col);
-       |             ^~~~~~~~~~~~~~~~~~~~~                                            
- ml_curses.c: In function 'mlcurses_getch':
- ml_curses.c:226:13: warning: "enter_blocking_section" is deprecated: use "caml_enter_blocking_section" instead
-   226 |    enter_blocking_section();
-       |             ^~~~~~~~~~~~~~~~                                                                       
- ml_curses.c:228:13: warning: "leave_blocking_section" is deprecated: use "caml_leave_blocking_section" instead
-   228 |    leave_blocking_section();
-       |             ^~~~~~~~~~~~~~~~                                                                       
- ml_curses.c: In function 'mlcurses_wgetch':
- ml_curses.c:243:13: warning: "enter_blocking_section" is deprecated: use "caml_enter_blocking_section" instead
-   243 |    enter_blocking_section();
-       |             ^~~~~~~~~~~~~~~~                                                                       
- ml_curses.c:245:13: warning: "leave_blocking_section" is deprecated: use "caml_leave_blocking_section" instead
-   245 |    leave_blocking_section();
-       |             ^~~~~~~~~~~~~~~~                                                                       
- ar rcs libcurses_stubs.a  ml_curses.o
- ocamlc -c -g keys.ml
- ocamlc -c -g curses.mli
- ocamlc -c -pp "gcc -x c -E " -g curses.ml
- ocamlmklib         \
- 			-o curses_stubs  ml_curses.o -lncursesw  \
- 			
- ocamlc -a -dllib dllcurses_stubs.so -custom     -g        -cclib -lcurses_stubs -cclib -lncursesw   -o curses.cma keys.cmo curses.cmo
- make[1]: Leaving directory '/home/opam/.opam/4.14/.opam-switch/build/curses.1.0.6'
- sed \
-   -e 's/@PACKAGE@/curses/' \
-   -e 's/@VERSION@/1.0.4/' \
-   -e 's/@CURSES@/ncurses/' \
-   < META.in > META
- ranlib *.a
Processing  8/9: [curses: make opt]
+ /usr/bin/make "OCAMLMAKEFILE=OCamlMakefile" "opt" (CWD=/home/opam/.opam/4.14/.opam-switch/build/curses.1.0.6)
- make[1]: Entering directory '/home/opam/.opam/4.14/.opam-switch/build/curses.1.0.6'
- ocamldep -native curses.mli > ._ncdi/curses.di
- make[1]: 'libcurses_stubs.a' is up to date.
- ocamlopt -c -g keys.ml
- ocamlopt -c -pp "gcc -x c -E " -g curses.ml
- ocamlopt -a      -g       -cclib -lcurses_stubs -cclib -lncursesw   -o curses.cmxa keys.cmx curses.cmx
- make[1]: Leaving directory '/home/opam/.opam/4.14/.opam-switch/build/curses.1.0.6'
- ranlib *.a
-> compiled  curses.1.0.6
Processing  9/9: [curses: make install]
+ /usr/bin/make "OCAMLMAKEFILE=OCamlMakefile" "install" (CWD=/home/opam/.opam/4.14/.opam-switch/build/curses.1.0.6)
- make[1]: Entering directory '/home/opam/.opam/4.14/.opam-switch/build/curses.1.0.6'
- make[1]: 'libcurses_stubs.a' is up to date.
- ocamlc -a -dllib dllcurses_stubs.so -custom     -g        -cclib -lcurses_stubs -cclib -lncursesw   -o curses.cma keys.cmo curses.cmo
- make[1]: Leaving directory '/home/opam/.opam/4.14/.opam-switch/build/curses.1.0.6'
- ranlib *.a
- 
- Installing library with ocamlfind
- ocamlfind install  curses META curses.mli curses.cmi keys.cmi curses.cma curses.cmxa curses.a libcurses_stubs.a dllcurses_stubs.so curses.cmx keys.cmx
- Installed /home/opam/.opam/4.14/lib/curses/keys.cmx
- Installed /home/opam/.opam/4.14/lib/curses/curses.cmx
- Installed /home/opam/.opam/4.14/lib/curses/libcurses_stubs.a
- Installed /home/opam/.opam/4.14/lib/curses/curses.a
- Installed /home/opam/.opam/4.14/lib/curses/curses.cmxa
- Installed /home/opam/.opam/4.14/lib/curses/curses.cma
- Installed /home/opam/.opam/4.14/lib/curses/keys.cmi
- Installed /home/opam/.opam/4.14/lib/curses/curses.cmi
- Installed /home/opam/.opam/4.14/lib/curses/curses.mli
- Installed /home/opam/.opam/4.14/lib/stublibs/dllcurses_stubs.so
- Installed /home/opam/.opam/4.14/lib/stublibs/dllcurses_stubs.so.owner
- ocamlfind: [WARNING] You have installed DLLs but the directory /home/opam/.opam/4.14/lib/stublibs is not mentioned in ld.conf
- Installed /home/opam/.opam/4.14/lib/curses/META
- 
- Installation successful.
-> installed curses.1.0.6
Done.
# Run eval $(opam env) to update the current shell environment
2024-01-29 19:24.41 ---> saved as "361629f5a4fae643642800a4049a110d9e2bc2b8f883ecce8329e414c8d63914"

/home/opam: (run (shell "opam exec -- ~/voodoo-prep -u curses:880dd68b43c040eab9305bb25fbdd289"))
2024-01-29 19:24.43 ---> saved as "0ced9f89912c607f1319d971aed27e1932992554dd35a3670268e487f43991a2"

/home/opam: (run (network host)
                 (secrets (ssh_privkey (target /home/opam/.ssh/id_rsa)) (ssh_pubkey (target /home/opam/.ssh/id_rsa.pub)) (ssh_config (target /home/opam/.ssh/config)))
                 (shell "(echo '0.144914') && (for DATA in prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.6,curses.1.0.6-880dd68b43c040eab9305bb25fbdd289,curses.1.0.6; do IFS=\",\"; set -- $DATA; ([ -d $1 ] || (echo \"FAILED:$2\" && mkdir -p $1 && cp ~/opam.err.log $1 && opam show $3 --raw > $1/opam)) && (shopt -s nullglob && ((tar -cvf $1.tar $1/*  && rm -R $1/* && mv $1.tar $1/content.tar) || (echo 'Empty directory'))) done) && (for DATA in prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.6,curses.1.0.6-880dd68b43c040eab9305bb25fbdd289,curses.1.0.6; do IFS=\",\"; set -- $DATA; rsync -aR --no-p ./$1 docs.ci.ocaml.org:/data/.; done) && (for DATA in prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.6,curses.1.0.6-880dd68b43c040eab9305bb25fbdd289,curses.1.0.6; do IFS=\",\"; set -- $DATA; HASH=$((sha256sum $1/content.tar | cut -d \" \" -f 1)  || echo -n 'empty'); printf \"HASHES:$2:$HASH\\n\"; done)"))
0.144914
prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.6/lib/
prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.6/lib/curses/
prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.6/lib/curses/curses.ocamlobjinfo
prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.6/lib/curses/META
prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.6/lib/curses/curses.cmi
prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.6/lib/curses/keys.cmi
prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.6/opam
Warning: Permanently added '[docs.ci.ocaml.org]:2222' (ED25519) to the list of known hosts.
HASHES:curses.1.0.6-880dd68b43c040eab9305bb25fbdd289:125671308c3373be91dfd41d5ce85e7213ad8be2f553877a5c0ea5dfc417ffc7
2024-01-29 19:24.44 ---> saved as "5c218b92088fc7fa05b4395bd8649084cebacdf19a1e6c4f97ecb009c0f19e8f"
Job succeeded
2024-01-29 19:30.08: curses.1.0.6-880dd68b43c040eab9305bb25fbdd289 -> 125671308c3373be91dfd41d5ce85e7213ad8be2f553877a5c0ea5dfc417ffc7
2024-01-29 19:30.08: Job succeeded