[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#69677] [PATCH gnome-team 1/1] gnu: opam: Fix build.
From: |
Vivien Kraus |
Subject: |
[bug#69677] [PATCH gnome-team 1/1] gnu: opam: Fix build. |
Date: |
Sat, 09 Mar 2024 20:39:45 +0100 |
User-agent: |
Evolution 3.48.4 |
Le samedi 09 mars 2024 à 13:18 -0500, Maxim Cournoyer a écrit :
>
> I'd like to hear about upstream. Perhaps our package is simply
> buggy?
> It'd be nice to have an upstream issue to link to.
With a closer investigation, it looks lik we are doing things wrong
indeed.
>From within the failed build directory, if I set up the environment
variable, run ocaml -I <the bunch of include directories>, and in the
prompt, run:
#load "base64.cma";;
Base64.decode_exn;;
I get an error message:
Error: The files /gnu/store/wh2ipi0bjywcf5pyis6z1s52adf5cqyd-ocaml-
base64-3.5.1/lib/ocaml/site-lib/base64/base64.cma
and /gnu/store/i01v0c5yzhw62qmvrlv3y436igwhcafh-ocaml-extlib-
1.7.9/lib/ocaml/site-lib/extlib/base64.cmi
make inconsistent assumptions over interface Base64
My guess is that we have 2 ocaml libraries implementing Base64 (ocaml-
base64 and ocaml-extlib, propagated from ocaml-dose3). Dune sees that
we have a powerful ocaml-base64 installed, so it lays out the
compatibility version 6 for us, but when it comes to actually building
the project, ocamlfind prioritizes the ocaml-extlib path by adding it
first, and it shadows our powerful ocaml-base64 implementation.
With this new extlib actor in the plot, I could search better. It
seems like Opam is aware of the issue:
https://github.com/ocaml/opam/issues/5694
The solution seems to be for extlib to ship a minimal version. But
maybe this should primarily concern the ocaml team, not gnome-team, as
it looks to me like a recipe for breaking at least half of the ocaml
ecosystem.
Best regards,
Vivien