guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#49867] [PATCH v2 13/31] gnu: Add ocaml-mirage-crypto.


From: pukkamustard
Subject: [bug#49867] [PATCH v2 13/31] gnu: Add ocaml-mirage-crypto.
Date: Mon, 23 Aug 2021 16:52:42 +0000


pukkamustard <pukkamustard@posteo.net> writes:

Julien Lepiller <julien@lepiller.eu> writes:

Trying to build ocaml-mirage-crypto, I get errors during the tests:

ocamlopt tests/test_symmetric_runner.exe (exit 2)

Error: Files
/gnu/store/id3dchcsw5gijsnn73kw5sn9ymjj90ai-ocaml-eqaf-0.7/lib/ocaml/site-lib/eqaf/bigstring/eqaf_bigstring.cmxa
and
/gnu/store/id3dchcsw5gijsnn73kw5sn9ymjj90ai-ocaml-eqaf-0.7/lib/ocaml/site-lib/eqaf/eqaf.cmxa
make inconsistent assumptions over implementation Eqaf

this seems to indicate Eqaf did not build properly? Does it build for
you?

Negative. Can confirm that ocaml-mirage-crypto does not build when rebased on
master. I will investigate.

This seems to be related to the recently added dune profile parameter (https://issues.guix.gnu.org/49868).

The installed eqaf.cmxa seems to be the one built by using the "dev" profile, whereas eqaf_bigstring.cmxa is expecting the Eqaf module built with the "release" profile:

```
$ ocamlobjinfo /gnu/store/id3dchcsw5gijsnn73kw5sn9ymjj90ai-ocaml-eqaf-0.7/lib/ocaml/site-lib/eqaf/bigstring/eqaf_bigstring.cmxa
[..]
Implementations imported:
        193f160ab58c2c455f4e1fe1425b8971        Eqaf
[..]

$ ocamlobjinfo /gnu/store/id3dchcsw5gijsnn73kw5sn9ymjj90ai-ocaml-eqaf-0.7/lib/ocaml/site-lib/eqaf/eqaf.cmxa
[..]
CRC of implementation: f693310ffd4f92f54cd1fde8271782b8
[..]
```

With (arguments `(#:profile "dev")):
```
$ ocamlobjinfo /gnu/store/v2s1h1is0ci2ij2h8k5fbna3j8ycrw9y-ocaml-eqaf-0.7/lib/ocaml/site-lib/eqaf/bigstring/eqaf_bigstring.cmxa
[..]
Implementations imported:
[..]
--------------------------------        Eqaf

$ ocamlobjinfo /gnu/store/v2s1h1is0ci2ij2h8k5fbna3j8ycrw9y-ocaml-eqaf-0.7/lib/ocaml/site-lib/eqaf/eqaf.cmxa
[..]
CRC of implementation: f693310ffd4f92f54cd1fde8271782b8
[..]
```

When using the "dev" profile the ocaml-eqaf and ocaml-mirage-crypto build and pass the checks.

(I assume that the missing CRC in eqaf_bigstring.cmxa means it does not check the CRC of the Eqaf implementation.)

If I set (arguments `(#:package "eqaf")), then also everything builds fine and the hashes seem to be right:

```
$ ocamlobjinfo /gnu/store/cyw1n07cqdh25w5awww185s44yzbcyss-ocaml-eqaf-0.7/lib/ocaml/site-lib/eqaf/bigstring/eqaf_bigstring.cmxa
Implementations imported:
        193f160ab58c2c455f4e1fe1425b8971        Eqaf


$ ocamlobjinfo /gnu/store/cyw1n07cqdh25w5awww185s44yzbcyss-ocaml-eqaf-0.7/lib/ocaml/site-lib/eqaf/eqaf.cmxa
CRC of implementation: 193f160ab58c2c455f4e1fe1425b8971
```

This seems weird. I don't understand why dune installs the eqaf.cmxa built with "dev" profile but eqaf_bigstring.cmxa with "release" profile. Maybe this is a bug in dune?

It does seem that using the dune "--profile" options on its own is not very common. Opam uses the dune "-p" option. This sets the profile to "release" and does a couple of other things (https://dune.readthedocs.io/en/stable/opam.html?highlight=build%20profile#invocation-from-opam). I don't think many people use the "--profile" option on its own.

For our dune-build-system I think it makes more sense to always use the "-p" flag. This requires adding the explicit OCaml package(s) to many specifications in Guix. I also think the "profile" parameter should be removed as the interactions with the "package" parameter (dune "-p") are not as expected. Sorry for not doing this research before submitting the patch that added the "profile" parameter.

Thoughts?

-pukkamustard





reply via email to

[Prev in Thread] Current Thread [Next in Thread]