Can't compile SSL 0.7.0/LWT 5.9.2 w/ dune build

Can’t seem to get past this, I am new to OCaml, just trying to build a simple web server here:

✗ opam install . --deps-only -y

The following actions will be performed:
=== install 27 packages
  ∗ caqti                 2.2.4        [required by dream]
  ∗ caqti-lwt             2.2.4        [required by dream]
  ∗ dream                 1.0.0~alpha8 [required by srql-translator]
  ∗ dream-httpaf          1.0.0~alpha4 [required by dream]
  ∗ dream-pure            1.0.0~alpha2 [required by dream]
  ∗ faraday-lwt           0.8.2        [required by faraday-lwt-unix]
  ∗ faraday-lwt-unix      0.8.2        [required by gluten-lwt-unix, h2-lwt-unix]
  ∗ gluten-lwt            0.5.2        [required by gluten-lwt-unix]
  ∗ gluten-lwt-unix       0.5.2        [required by dream-httpaf]
  ∗ graphql-lwt           0.14.0       [required by dream]
  ∗ h2-lwt                0.10.0       [required by h2-lwt-unix]
  ∗ h2-lwt-unix           0.10.0       [required by dream-httpaf]
  ∗ httpun-lwt            0.1.0        [required by httpun-lwt-unix]
  ∗ httpun-lwt-unix       0.1.0        [required by dream-httpaf]
  ∗ logs                  0.9.0        [required by dream]
  ∗ lwt                   5.9.2        [required by dream]
  ∗ lwt_ppx               5.9.2        [required by srql-translator]
  ∗ lwt_ssl               1.2.0        [required by dream]
  ∗ mirage-crypto-ec      1.2.0        [required by tls]
  ∗ mirage-crypto-pk      1.2.0        [required by tls]
  ∗ mirage-crypto-rng     1.2.0        [required by dream]
  ∗ mirage-crypto-rng-lwt 1.2.0        [required by dream]
  ∗ multipart_form        0.7.0        [required by dream]
  ∗ multipart_form-lwt    0.7.0        [required by dream]
  ∗ ssl                   0.7.0        [required by dream]
  ∗ tls                   2.0.2        [required by caqti]
  ∗ x509                  1.0.6        [required by caqti]

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><>  🐫
⬇ retrieved dream-pure.1.0.0~alpha2  (cached)
⬇ retrieved dream.1.0.0~alpha8, dream-httpaf.1.0.0~alpha4  (cached)
⬇ retrieved faraday-lwt.0.8.2, faraday-lwt-unix.0.8.2  (cached)
⬇ retrieved gluten-lwt.0.5.2, gluten-lwt-unix.0.5.2  (cached)
⬇ retrieved graphql-lwt.0.14.0  (cached)
⬇ retrieved caqti.2.2.4, caqti-lwt.2.2.4  (cached)
⬇ retrieved httpun-lwt.0.1.0, httpun-lwt-unix.0.1.0  (cached)
⬇ retrieved logs.0.9.0  (cached)
⬇ retrieved h2-lwt.0.10.0, h2-lwt-unix.0.10.0  (cached)
⬇ retrieved lwt_ssl.1.2.0  (cached)
⬇ retrieved lwt.5.9.2, lwt_ppx.5.9.2  (cached)
⬇ retrieved ssl.0.7.0  (cached)
⬇ retrieved multipart_form.0.7.0, multipart_form-lwt.0.7.0  (cached)
⬇ retrieved tls.2.0.2  (cached)
⬇ retrieved mirage-crypto-ec.1.2.0, mirage-crypto-pk.1.2.0, mirage-crypto-rng.1.2.0, mirage-crypto-rng-lwt.1.2.0  (cached)
⬇ retrieved x509.1.0.6  (cached)
[ERROR] The compilation of ssl.0.7.0 failed at "dune build -p ssl -j 7 @install".
[ERROR] The compilation of lwt.5.9.2 failed at "dune build -p lwt -j 7 @install".

#=== ERROR while compiling ssl.0.7.0 ==========================================#
# context     2.4.1 | macos/arm64 | ocaml.5.3.0 | https://opam.ocaml.org#e28312d8e0d10f256ec9998ff7e868cb6e010778
# path        ~/.opam/default/.opam-switch/build/ssl.0.7.0
# command     ~/.opam/opam-init/hooks/sandbox.sh build dune build -p ssl -j 7 @install
# exit-code   1
# env-file    ~/.opam/log/ssl-8485-84ec46.env
# output-file ~/.opam/log/ssl-8485-84ec46.out
### output ###
# [...]
# (cd _build/default/src && config/discover.exe)
# which: pkgconf
# -> found: /opt/homebrew/opt/pkgconf
# which: brew
# -> found: /opt/homebrew/bin/brew
# run: /opt/homebrew/bin/brew --prefix
# -> process exited with code 0
# -> stdout:
#  | /opt/homebrew
# -> stderr:
# run: /opt/homebrew/opt/pkgconf --personality aarch64-apple-darwin24.6.0 --print-errors openssl
# Fatal error: exception Unix.Unix_error(Unix.EACCES, "create_process", "/opt/homebrew/opt/pkgconf")


#=== ERROR while compiling lwt.5.9.2 ==========================================#
# context     2.4.1 | macos/arm64 | ocaml.5.3.0 | https://opam.ocaml.org#e28312d8e0d10f256ec9998ff7e868cb6e010778
# path        ~/.opam/default/.opam-switch/build/lwt.5.9.2
# command     ~/.opam/opam-init/hooks/sandbox.sh build dune build -p lwt -j 7 @install
# exit-code   1
# env-file    ~/.opam/log/lwt-8485-1cc5f5.env
# output-file ~/.opam/log/lwt-8485-1cc5f5.out
### output ###
# -> stderr:
# [...]
# which: pkgconf
# -> found: /opt/homebrew/opt/pkgconf
# which: brew
# -> found: /opt/homebrew/bin/brew
# run: /opt/homebrew/bin/brew --prefix
# -> process exited with code 0
# -> stdout:
#  | /opt/homebrew
# -> stderr:
# run: /opt/homebrew/opt/pkgconf --personality aarch64-apple-darwin24.6.0 --print-errors libev
# Fatal error: exception Unix.Unix_error(Unix.EACCES, "create_process", "/opt/homebrew/opt/pkgconf")



<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><>  🐫
┌─ The following actions failed
│ λ build lwt 5.9.2
│ λ build ssl 0.7.0
└─
╶─ No changes have been performed

Please advise.

Seems like I may have gotten this to work now:

✗ brew install pkgconf openssl@3
export PKG_CONFIG="$(brew --prefix)/bin/pkg-config"
export PKG_CONFIG_PATH="$(brew --prefix)/lib/pkgconfig:$(brew --prefix)/share/pkgconfig:$(brew --prefix)/opt/openssl@3/lib/pkgconfig"

==> Downloading https://formulae.brew.sh/api/formula.jws.json
==> Downloading https://formulae.brew.sh/api/cask.jws.json
Warning: pkgconf 2.5.1 is already installed and up-to-date.
To reinstall 2.5.1, run:
  brew reinstall pkgconf
Warning: openssl@3 3.5.2 is already installed and up-to-date.
To reinstall 3.5.2, run:
  brew reinstall openssl@3
➜ ocaml (srql/ocaml_poc) ✗ command -v pkg-config     # -> /opt/homebrew/bin/pkg-config
pkg-config --modversion openssl   # should print a version (e.g., 3.x)

/opt/homebrew/bin/pkg-config
3.5.2
➜ ocaml (srql/ocaml_poc) ✗ opam clean -a
opam install lwt ssl -y --jobs=1    # build them first for clearer logs
opam install . --deps-only -y

Cleaning up switch default
The following actions will be performed:
=== install 2 packages
  ∗ lwt 5.9.2
  ∗ ssl 0.7.0

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><>  🐫
⬇ retrieved ssl.0.7.0  (cached)
⬇ retrieved lwt.5.9.2  (cached)
∗ installed ssl.0.7.0
∗ installed lwt.5.9.2
Done.
The following actions will be performed:
=== install 25 packages
  ∗ caqti                 2.2.4        [required by dream]
  ∗ caqti-lwt             2.2.4        [required by dream]
  ∗ dream                 1.0.0~alpha8 [required by srql-translator]
  ∗ dream-httpaf          1.0.0~alpha4 [required by dream]
  ∗ dream-pure            1.0.0~alpha2 [required by dream]
  ∗ faraday-lwt           0.8.2        [required by faraday-lwt-unix]
  ∗ faraday-lwt-unix      0.8.2        [required by gluten-lwt-unix, h2-lwt-unix]
  ∗ gluten-lwt            0.5.2        [required by gluten-lwt-unix]
  ∗ gluten-lwt-unix       0.5.2        [required by dream-httpaf]
  ∗ graphql-lwt           0.14.0       [required by dream]
  ∗ h2-lwt                0.10.0       [required by h2-lwt-unix]
  ∗ h2-lwt-unix           0.10.0       [required by dream-httpaf]
  ∗ httpun-lwt            0.1.0        [required by httpun-lwt-unix]
  ∗ httpun-lwt-unix       0.1.0        [required by dream-httpaf]
  ∗ logs                  0.9.0        [required by dream]
  ∗ lwt_ppx               5.9.2        [required by srql-translator]
  ∗ lwt_ssl               1.2.0        [required by dream]
  ∗ mirage-crypto-ec      1.2.0        [required by tls]
  ∗ mirage-crypto-pk      1.2.0        [required by tls]
  ∗ mirage-crypto-rng     1.2.0        [required by dream]
  ∗ mirage-crypto-rng-lwt 1.2.0        [required by dream]
  ∗ multipart_form        0.7.0        [required by dream]
  ∗ multipart_form-lwt    0.7.0        [required by dream]
  ∗ tls                   2.0.2        [required by caqti]
  ∗ x509                  1.0.6        [required by caqti]

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><>  🐫
⬇ retrieved dream-pure.1.0.0~alpha2  (cached)
⬇ retrieved dream.1.0.0~alpha8, dream-httpaf.1.0.0~alpha4  (cached)
⬇ retrieved faraday-lwt.0.8.2, faraday-lwt-unix.0.8.2  (cached)
⬇ retrieved gluten-lwt.0.5.2, gluten-lwt-unix.0.5.2  (cached)
⬇ retrieved graphql-lwt.0.14.0  (cached)
⬇ retrieved caqti.2.2.4, caqti-lwt.2.2.4  (cached)
⬇ retrieved httpun-lwt.0.1.0, httpun-lwt-unix.0.1.0  (cached)
⬇ retrieved logs.0.9.0  (cached)
⬇ retrieved lwt_ssl.1.2.0  (cached)
⬇ retrieved lwt_ppx.5.9.2  (cached)
⬇ retrieved multipart_form.0.7.0, multipart_form-lwt.0.7.0  (cached)
∗ installed graphql-lwt.0.14.0
∗ installed gluten-lwt.0.5.2
⬇ retrieved h2-lwt.0.10.0, h2-lwt-unix.0.10.0  (cached)
⬇ retrieved tls.2.0.2  (cached)
∗ installed faraday-lwt.0.8.2
⬇ retrieved x509.1.0.6  (cached)
⬇ retrieved mirage-crypto-ec.1.2.0, mirage-crypto-pk.1.2.0, mirage-crypto-rng.1.2.0, mirage-crypto-rng-lwt.1.2.0  (cached)
∗ installed lwt_ssl.1.2.0
∗ installed httpun-lwt.0.1.0
∗ installed faraday-lwt-unix.0.8.2
∗ installed h2-lwt.0.10.0
∗ installed gluten-lwt-unix.0.5.2
∗ installed h2-lwt-unix.0.10.0
∗ installed httpun-lwt-unix.0.1.0
∗ installed lwt_ppx.5.9.2
∗ installed logs.0.9.0
∗ installed dream-pure.1.0.0~alpha2
∗ installed mirage-crypto-rng.1.2.0
∗ installed multipart_form.0.7.0
∗ installed mirage-crypto-rng-lwt.1.2.0
∗ installed mirage-crypto-pk.1.2.0
∗ installed multipart_form-lwt.0.7.0
∗ installed dream-httpaf.1.0.0~alpha4
∗ installed mirage-crypto-ec.1.2.0
∗ installed x509.1.0.6
∗ installed tls.2.0.2
∗ installed caqti.2.2.4
∗ installed caqti-lwt.2.2.4
∗ installed dream.1.0.0~alpha8
Done.
➜ ocaml (srql/ocaml_poc) ✗