After upgrading to ocaml-4.02.1 and installing ocaml-camlp4 I cannot compile some packages that depend on camlp4 in opam. This happens on clean installs. Example: #=== ERROR while installing type_conv.112.01.01 ===============================# # opam-version 1.2.1 # os freebsd # command gmake # path /home/mmatalka/.opam/system/build/type_conv.112.01.01 # compiler system (4.02.1) # exit-code 2 # env-file /home/mmatalka/.opam/system/build/type_conv.112.01.01/type_conv-57786-6d07ae.env # stdout-file /home/mmatalka/.opam/system/build/type_conv.112.01.01/type_conv-57786-6d07ae.out # stderr-file /home/mmatalka/.opam/system/build/type_conv.112.01.01/type_conv-57786-6d07ae.err ### stdout ### # ocamlopt.opt -o setup.exe setup.ml || ocamlopt -o setup.exe setup.ml || ocamlc -o setup.exe setup.ml # rm -f setup.cmx setup.cmi setup.o setup.obj setup.cmo # ./setup.exe -configure # Makefile:51: recipe for target 'setup.data' failed ### stderr ### # ocamlfind: Package `camlp4.quotations' not found # W: Field 'pkg_camlp4_quotations' is not set: Command ''/home/mmatalka/.opam/system/bin/ocamlfind' query -format %d camlp4.quotations > '/tmp/oasis-e8bc2d.txt'' terminated with error code 2 # ocamlfind: Package `camlp4.extend' not found # W: Field 'pkg_camlp4_extend' is not set: Command ''/home/mmatalka/.opam/system/bin/ocamlfind' query -format %d camlp4.extend > '/tmp/oasis-361e40.txt'' terminated with error code 2 # E: Cannot find findlib package camlp4.extend # E: Cannot find findlib package camlp4.quotations # E: Failure("2 configuration errors") # gmake: *** [setup.data] Error 1
I installed ocaml and camlp4 via 'pkg' btw, not from port source.
On my system, I have a camlp4 META file installed by ocaml-findlib-1.5.5, but on some other system using ocaml-findlib-1.5.5_1 this file is absent. @mmatalka – What is your version of ocaml-findlib? @johan I CCed you because it seems to me, the issue is related to findlib. pkg which /usr/local/lib/ocaml/site-lib/camlp4/META /usr/local/lib/ocaml/site-lib/camlp4/META was installed by package ocaml-findlib-1.5.5
(In reply to Michael Grünewald from comment #2) I have 1.5.5_1, I only installed it to see if it fixed the problem because opam always installs its own findlib. Without findlib installed, though, I have no site-lib dir. With it installed I do, but no camlp4 directory in it.
findlib will install the META file for camlp4 if it is present already when findlib is installed. Since camlp4 used to be a part of ocaml, this was always the case in previous versions. But now it depends on the order in which findlib and camlp4 are installed. Since other ports depend on findlib's META files for camlp4, I will add camlp4 as an explicit dependency of findlib. Hopefully this will resolve the issue.
A commit references this bug: Author: johans Date: Wed May 6 07:20:47 UTC 2015 New revision: 385508 URL: https://svnweb.freebsd.org/changeset/ports/385508 Log: Add dependency on camlp4 to ensure its META data gets installed PR: 199986 Changes: head/devel/ocaml-findlib/Makefile head/devel/ocaml-findlib/pkg-plist
Great that you fixed this os quickly Johan. Thanks!
I have closed this PR as I believe the issue is resolved now. Do reopen it again if the fix is not complete.
(In reply to Johan van Selst from comment #7) Thank you for the quick response!