GNU bug report logs -
#49867
[PATCH 00/29] gnu: Add ocaml-cohttp-lwt-unix.
Previous Next
Reported by: pukkamustard <pukkamustard <at> posteo.net>
Date: Wed, 4 Aug 2021 07:12:01 UTC
Severity: normal
Tags: patch
Done: pukkamustard <pukkamustard <at> posteo.net>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
pukkamustard <pukkamustard <at> posteo.net> writes:
> Julien Lepiller <julien <at> 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
This bug report was last modified 3 years and 249 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.