-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
I'm not sure if this is an issue with packages or an issue with configuration.
The issue
Packages conf-cairo, conf-gtk3 and conf-pkg-config bring in mingw dependencies for an MSVC build.
It looks like this:
opam install lablgtk3 ocamlfind
<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>
[lablgtk3.3.1.5] synchronised (no changes)
The following actions will be performed:
=== recompile 1 package
- recompile mingw-w64-shims 0.2.0 [uses conf-mingw-w64-gcc-i686]
=== install 15 packages
- install cairo2 0.6.5 (pinned) [required by lablgtk3]
- install camlp-streams 5.0.1 [required by lablgtk3]
- install conf-cairo 1 [required by cairo2]
- install conf-gtk3 18 [required by lablgtk3]
- install conf-mingw-w64-cairo-i686 1 [required by conf-cairo]
- install conf-mingw-w64-cairo-x86_64 1 [required by conf-cairo]
- install conf-mingw-w64-gcc-i686 1 [required by conf-mingw-w64-gtk3-i686]
- install conf-mingw-w64-gtk3-i686 1 [required by conf-gtk3]
- install conf-mingw-w64-gtk3-x86_64 1 [required by conf-gtk3]
- install conf-pkg-config 4 [required by conf-gtk3]
- install csexp 1.5.2 [required by dune-configurator]
- install dune 3.22.0 [required by lablgtk3]
- install dune-configurator 3.22.0 [required by cairo2]
- install lablgtk3 3.1.5 (pinned)
- install ocamlfind 1.9.8
The following system packages will first need to be installed:
mingw64-i686-cairo mingw64-i686-gcc-core mingw64-i686-gtk3 mingw64-x86_64-cairo mingw64-x86_64-gtk3 pkgconf
(side note: not sure why 32-bit deps are pulled in for a 64-bit build but this might a setup-ocaml issue)
In addition to pulling in mingw dependencies, some of the conf packages execute pkgconf with mingw personality, which also doesn't apply here.
Expected
This is the output that I'd expect to see when building with MSVC:
opam install lablgtk3 ocamlfind
<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>
[lablgtk3.3.1.5] synchronised (no changes)
The following actions will be performed:
=== recompile 1 package
- recompile mingw-w64-shims 0.2.0 [uses conf-pkg-config]
=== install 10 packages
- install cairo2 0.6.5 (pinned) [required by lablgtk3]
- install camlp-streams 5.0.1 [required by lablgtk3]
- install conf-cairo 1 (pinned) [required by cairo2]
- install conf-gtk3 18 (pinned) [required by lablgtk3]
- install conf-pkg-config 4 (pinned) [required by conf-gtk3]
- install csexp 1.5.2 [required by dune-configurator]
- install dune 3.22.0 [required by lablgtk3]
- install dune-configurator 3.22.0 [required by cairo2]
- install lablgtk3 3.1.5 (pinned)
- install ocamlfind 1.9.8
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
The conf-* packages are pinned here as a result of me bluntly patching them locally to remove mingw dependencies. You can see that here: https://github.com/bcpierce00/unison/blob/f925b975130d879478590fa3b64d9bde969864e6/.github/workflows/CI.yml#L406-L483
For an example of this working without the unneeded mingw dependencies, see: https://github.com/bcpierce00/unison/actions/runs/23621816860/job/68802652911#step:17:1