Build:
  1. 0
2024-01-29 15:19.06: New job: Voodoo prep curses.1.0.8; 880dd68b43c040eab9305bb25fbdd289
2024-01-29 15:19.06: Waiting for resource in pool OCluster
2024-01-29 19:25.12: Waiting for worker…
2024-01-29 19:29.23: Got resource from pool OCluster
2024-01-29 19:29.23: 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.8 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,conf-ncurses:f10a8e6d5c7eddcd8c8d8cfb436aa5d4"))
 (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.842737') && (for DATA in prep/universes/f10a8e6d5c7eddcd8c8d8cfb436aa5d4/conf-ncurses/1,conf-ncurses.1-f10a8e6d5c7eddcd8c8d8cfb436aa5d4,conf-ncurses.1 prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.8,curses.1.0.8-880dd68b43c040eab9305bb25fbdd289,curses.1.0.8; 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/f10a8e6d5c7eddcd8c8d8cfb436aa5d4/conf-ncurses/1,conf-ncurses.1-f10a8e6d5c7eddcd8c8d8cfb436aa5d4,conf-ncurses.1 prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.8,curses.1.0.8-880dd68b43c040eab9305bb25fbdd289,curses.1.0.8; do IFS=\",\"; set -- $DATA; rsync -aR --no-p ./$1 docs.ci.ocaml.org:/data/.; done) && (for DATA in prep/universes/f10a8e6d5c7eddcd8c8d8cfb436aa5d4/conf-ncurses/1,conf-ncurses.1-f10a8e6d5c7eddcd8c8d8cfb436aa5d4,conf-ncurses.1 prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.8,curses.1.0.8-880dd68b43c040eab9305bb25fbdd289,curses.1.0.8; 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:29.23: RETRYING: 2024-01-29/151906-voodoo-prep-8ac5ba Number of retries: 0 (retriable error condition)
Building on c2-2.equinix.ci.dev
All commits already cached
Updating files:  17% (5726/32065)
Updating files:  18% (5772/32065)
Updating files:  19% (6093/32065)
Updating files:  20% (6413/32065)
Updating files:  21% (6734/32065)
Updating files:  22% (7055/32065)
Updating files:  23% (7375/32065)
Updating files:  24% (7696/32065)
Updating files:  25% (8017/32065)
Updating files:  26% (8337/32065)
Updating files:  27% (8658/32065)
Updating files:  28% (8979/32065)
Updating files:  29% (9299/32065)
Updating files:  30% (9620/32065)
Updating files:  31% (9941/32065)
Updating files:  32% (10261/32065)
Updating files:  33% (10582/32065)
Updating files:  34% (10903/32065)
Updating files:  35% (11223/32065)
Updating files:  36% (11544/32065)
Updating files:  37% (11865/32065)
Updating files:  38% (12185/32065)
Updating files:  39% (12506/32065)
Updating files:  40% (12826/32065)
Updating files:  41% (13147/32065)
Updating files:  42% (13468/32065)
Updating files:  43% (13788/32065)
Updating files:  44% (14109/32065)
Updating files:  45% (14430/32065)
Updating files:  46% (14750/32065)
Updating files:  46% (14996/32065)
Updating files:  47% (15071/32065)
Updating files:  48% (15392/32065)
Updating files:  49% (15712/32065)
Updating files:  50% (16033/32065)
Updating files:  51% (16354/32065)
Updating files:  52% (16674/32065)
Updating files:  53% (16995/32065)
Updating files:  54% (17316/32065)
Updating files:  55% (17636/32065)
Updating files:  56% (17957/32065)
Updating files:  57% (18278/32065)
Updating files:  58% (18598/32065)
Updating files:  59% (18919/32065)
Updating files:  60% (19239/32065)
Updating files:  61% (19560/32065)
Updating files:  62% (19881/32065)
Updating files:  63% (20201/32065)
Updating files:  64% (20522/32065)
Updating files:  65% (20843/32065)
Updating files:  66% (21163/32065)
Updating files:  67% (21484/32065)
Updating files:  68% (21805/32065)
Updating files:  69% (22125/32065)
Updating files:  70% (22446/32065)
Updating files:  71% (22767/32065)
Updating files:  72% (23087/32065)
Updating files:  73% (23408/32065)
Updating files:  74% (23729/32065)
Updating files:  75% (24049/32065)
Updating files:  76% (24370/32065)
Updating files:  76% (24620/32065)
Updating files:  77% (24691/32065)
Updating files:  78% (25011/32065)
Updating files:  79% (25332/32065)
Updating files:  80% (25652/32065)
Updating files:  81% (25973/32065)
Updating files:  82% (26294/32065)
Updating files:  83% (26614/32065)
Updating files:  84% (26935/32065)
Updating files:  85% (27256/32065)
Updating files:  86% (27576/32065)
Updating files:  87% (27897/32065)
Updating files:  88% (28218/32065)
Updating files:  89% (28538/32065)
Updating files:  90% (28859/32065)
Updating files:  91% (29180/32065)
Updating files:  92% (29500/32065)
Updating files:  92% (29526/32065)
Updating files:  93% (29821/32065)
Updating files:  94% (30142/32065)
Updating files:  95% (30462/32065)
Updating files:  95% (30637/32065)
Updating files:  96% (30783/32065)
Updating files:  97% (31104/32065)
Updating files:  98% (31424/32065)
Updating files:  99% (31745/32065)
Updating files: 100% (32065/32065)
Updating files: 100% (32065/32065), 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)
2024-01-29 19:25.02 ---> 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:25.02 ---> using "1d21a6b23acb9a0ecc34f4603532877e449579b03d049d54398f2b50dc54f3f6" 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 (548 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 (22.6 MB/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:25.02 ---> using "fe56532491a39482225221439a1dda7126130e49a322fb986690793d77fafdc6" 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 dune.3.13.0
-> installed fmt.0.9.0
-> installed astring.0.8.5
-> installed stdlib-shims.0.3.0
-> installed opam-file-format.2.1.6
-> installed cppo.1.6.9
-> installed re.1.11.0
-> installed logs.0.7.0
-> installed fpath.0.7.3
-> installed ocamlgraph.2.1.0
-> installed bos.0.2.1
-> 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:25.02 ---> using "f2f06e34dbfcee853b5100a27a4d7b8f61fe2078acf85731fd32379ae7bcbdf9" from cache

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

(from ocaml/opam:debian-12-ocaml-4.14@sha256:8e390dbf29f7a115e5c8098ffb1a3c7234a873cf738a5ae22f3a4846122db9ef)
2024-01-29 19:25.02 ---> 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:25.02 ---> using "1d21a6b23acb9a0ecc34f4603532877e449579b03d049d54398f2b50dc54f3f6" from cache

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

/home/opam: (copy (src packages) (dst /src/packages))
2024-01-29 19:25.04 ---> using "ca56d431c43ee4eae295d536a3d39a8c423a6ff0380274ba7357c2d0226a7323" from cache

/home/opam: (copy (src repo) (dst /src/repo))
2024-01-29 19:25.04 ---> using "226be5b35d1a360e48779d4cdcc08adecf1cbd3d6af5b6edd6a4e648701f66a7" from cache

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

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.

Continue? [Y/n] y
Format upgrade done.

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

/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:25.50 ---> saved as "493475ee2f4d373459ec275e5a41bb38ec82037b4deeb90129273d2b97d5c822"

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

/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:26.44 ---> saved as "17a28b2ed6c9fda276d534e85c655eaeb23ddff5252d45a80ec8a5f5ee10c5a5"

/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.8 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 (575 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.8 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.8
===== 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: [curses.1.0.8: http]
Processing  4/9: [curses.1.0.8: http] [conf-pkg-config: pkg-config]
Processing  4/9: [conf-pkg-config: pkg-config]
- 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
Processing  4/9:
-> installed conf-pkg-config.3
Processing  5/9:
Processing  6/9: [conf-ncurses: pkg-config ncurses]
-> retrieved curses.1.0.8  (https://github.com/mbacarella/curses/archive/1.0.8.tar.gz)
+ /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.8/./configure "--enable-widec" (CWD=/home/opam/.opam/4.14/.opam-switch/build/curses.1.0.8)
- 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.8)
- make[1]: Entering directory '/home/opam/.opam/4.14/.opam-switch/build/curses.1.0.8'
- 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.8'
- sed \
-   -e 's/@PACKAGE@/curses/' \
-   -e 's/@VERSION@/1.0.7/' \
-   -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.8)
- make[1]: Entering directory '/home/opam/.opam/4.14/.opam-switch/build/curses.1.0.8'
- 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.8'
- ranlib *.a
-> compiled  curses.1.0.8
Processing  9/9: [curses: make install]
+ /usr/bin/make "OCAMLMAKEFILE=OCamlMakefile" "install" (CWD=/home/opam/.opam/4.14/.opam-switch/build/curses.1.0.8)
- make[1]: Entering directory '/home/opam/.opam/4.14/.opam-switch/build/curses.1.0.8'
- 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.8'
- 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.8
Done.
# Run eval $(opam env) to update the current shell environment
2024-01-29 19:28.54 ---> saved as "9b70586962ef6226dd4c94f7152514c750b6d8e95540d9759d1e0b7f1f7c0694"

/home/opam: (run (shell "opam exec -- ~/voodoo-prep -u curses:880dd68b43c040eab9305bb25fbdd289,conf-ncurses:f10a8e6d5c7eddcd8c8d8cfb436aa5d4"))
2024-01-29 19:29.01 ---> saved as "889927d38bca68d6d8dc4c2b560088e3f4dfad7652a3eb2e1c0f506ce2250a3c"

/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.842737') && (for DATA in prep/universes/f10a8e6d5c7eddcd8c8d8cfb436aa5d4/conf-ncurses/1,conf-ncurses.1-f10a8e6d5c7eddcd8c8d8cfb436aa5d4,conf-ncurses.1 prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.8,curses.1.0.8-880dd68b43c040eab9305bb25fbdd289,curses.1.0.8; 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/f10a8e6d5c7eddcd8c8d8cfb436aa5d4/conf-ncurses/1,conf-ncurses.1-f10a8e6d5c7eddcd8c8d8cfb436aa5d4,conf-ncurses.1 prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.8,curses.1.0.8-880dd68b43c040eab9305bb25fbdd289,curses.1.0.8; do IFS=\",\"; set -- $DATA; rsync -aR --no-p ./$1 docs.ci.ocaml.org:/data/.; done) && (for DATA in prep/universes/f10a8e6d5c7eddcd8c8d8cfb436aa5d4/conf-ncurses/1,conf-ncurses.1-f10a8e6d5c7eddcd8c8d8cfb436aa5d4,conf-ncurses.1 prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.8,curses.1.0.8-880dd68b43c040eab9305bb25fbdd289,curses.1.0.8; do IFS=\",\"; set -- $DATA; HASH=$((sha256sum $1/content.tar | cut -d \" \" -f 1)  || echo -n 'empty'); printf \"HASHES:$2:$HASH\\n\"; done)"))
0.842737
prep/universes/f10a8e6d5c7eddcd8c8d8cfb436aa5d4/conf-ncurses/1/opam
prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.8/lib/
prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.8/lib/curses/
prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.8/lib/curses/keys.cmi
prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.8/lib/curses/curses.cmi
prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.8/lib/curses/META
prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.8/lib/curses/curses.ocamlobjinfo
prep/universes/880dd68b43c040eab9305bb25fbdd289/curses/1.0.8/opam
Warning: Permanently added '[docs.ci.ocaml.org]:2222' (ED25519) to the list of known hosts.
Warning: Permanently added '[docs.ci.ocaml.org]:2222' (ED25519) to the list of known hosts.
HASHES:conf-ncurses.1-f10a8e6d5c7eddcd8c8d8cfb436aa5d4:4484dcff392710feaa628e2600bf4dc673e3fd20ded55487fc651e4372a5126f
HASHES:curses.1.0.8-880dd68b43c040eab9305bb25fbdd289:2ef90f96c9e38078eb46f68220ace55321bc65d268e14fdbc87280f4d724759d
2024-01-29 19:29.06 ---> saved as "a9dbfa344e03df279a007742e47822a805d39b75f8a4af01f3cc942cc15c0669"
Job succeeded
2024-01-29 19:35.38: curses.1.0.8-880dd68b43c040eab9305bb25fbdd289 -> 2ef90f96c9e38078eb46f68220ace55321bc65d268e14fdbc87280f4d724759d
2024-01-29 19:35.38: conf-ncurses.1-f10a8e6d5c7eddcd8c8d8cfb436aa5d4 -> 4484dcff392710feaa628e2600bf4dc673e3fd20ded55487fc651e4372a5126f
2024-01-29 19:35.38: Job succeeded