timbertson / opam2nix

Generate nix expressions from opam packages
MIT License
93 stars 28 forks source link

Packages that depend on ocamlfind do not work #68

Closed rgrinberg closed 3 years ago

rgrinberg commented 3 years ago

For example, building astring gives me this error:

 + ocaml pkg/pkg.ml build --pinned false
Cannot find file topfind.
Cannot find file topfind.
Unknown directive `require'.
Unknown directive `require'.
Command failed.
Command failed.
error: builder for '/nix/store/71ljajig8adjaq5658nyvh8s4ipmj29f-astring-0.8.5.drv' failed with exit code 2;
       last 10 log lines:
       > building
       > + /nix/store/yxx0naddl406aifqfbqfy8kpgpc628sd-ocaml4.12.0-opam2nix-1.1.0/bin/opam2nix invoke build
       > Loading /nix/store/21x44dmmg3s7plq9rnc3j8dx7my92pn9-opam/opam
       > creating /nix/store/pd7phsg3ibvba2s1c3p0dkhl5sga7py0-astring-0.8.5/bin
       > creating /nix/store/pd7phsg3ibvba2s1c3p0dkhl5sga7py0-astring-0.8.5/lib/ocaml/4.12.0/site-lib/stublibs/astring
       > creating /nix/store/pd7phsg3ibvba2s1c3p0dkhl5sga7py0-astring-0.8.5/lib/ocaml/4.12.0/site-lib/astring
       >  + ocaml pkg/pkg.ml build --pinned false
       > Cannot find file topfind.
       > Unknown directive `require'.
       > Command failed.
       For full logs, run 'nix log /nix/store/71ljajig8adjaq5658nyvh8s4ipmj29f-astring-0.8.5.drv'.

The #require directive from the ocamlfind package should be available because astring specifies ocamlfind as a build dependency.

timbertson commented 3 years ago

I think this broke recently in c612084, as a workaround it looks like c919228 works for me locally.