On Wed, Mar 2, 2022 at 8:52 AM Richard W.M. Jones rjones@redhat.com wrote:
To keep this a bit more specific, we're trying to build coccinelle for EPEL 9. This requires ocaml [compiler] and a bunch of ocaml packages. They are mainly in RHEL buildroot.
The problem we're going to have (which to be fair is a problem somewhat specific to OCaml linking) is that an alternate OCaml compiler built for EPEL will have different hash values[1] for core libraries.
If we use a different version from the RHEL compiler, say we use Fedora Rawhide version, then all the hashes will be different.
If we use the same version as in RHEL, then most hash values will be the same, but if the compiler flags are even slightly different then there will be some differences.
OCaml libraries in RHEL that we do ship (ocaml-libnbd and others) will not be linkable with code compiled with the EPEL toolchain.
It's entirely possible we don't care about this, and I maybe even agree. But also that people using RHEL with EPEL added will get into weird situations if they try to recompile the virt tools packages.
Rich.
[1] Hash values are computed over the modules to prevent linking incompatible versions:
$ ocamlobjinfo /usr/lib64/ocaml/unix.cma | grep Unix Unit name: Unix 49c6c492a189deeaed5bf77a6793e7fa Unix
and turned into RPM dependencies:
$ rpm -qR ocaml | grep Unix ocaml(Unix) = 49c6c492a189deeaed5bf77a6793e7fa
So why not have the OCaml toolchain exposed in RHEL CRB? It sounds like it would be very beneficial to have it there.