ocaml / opam-repository

Main public package repository for opam, the source package manager of OCaml.
https://opam.ocaml.org
Creative Commons Zero v1.0 Universal
517 stars 1.13k forks source link

omake doesn't list libfam as an external dependency #7646

Closed ghost closed 8 years ago

ghost commented 8 years ago

omake doesn't list libfam as a depext. Thus building fails if someone doesn't have it.

The following actions will be performed:
  ∗  install opium 0.15.0
=-=- Gathering sources =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[opium] Archive in cache
=-=- Processing actions -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[ERROR] The compilation of opium failed at "make install".
Processing  1/1: [opium: ocamlfind remove]
#=== ERROR while installing opium.0.15.0 ======================================#
# opam-version 1.2.2
# os           linux
# command      make install
# path         .opam/4.03.0/build/opium.0.15.0
# compiler     4.03.0
# exit-code    2
# env-file     .opam/4.03.0/build/opium.0.15.0/opium-27414-d2c37b.env
# stdout-file  .opam/4.03.0/build/opium.0.15.0/opium-27414-d2c37b.out
# stderr-file  .opam/4.03.0/build/opium.0.15.0/opium-27414-d2c37b.err
### stderr ###
# omake: error while loading shared libraries: libfam.so.0: cannot open shared object file: No such file or directory
# make: *** [Makefile:21: install] Error 127

And the omake dependencies.

⇒  ldd .opam/4.03.0/bin/omake 
        linux-vdso.so.1 (0x00007fff63f68000)
        libfam.so.0 => /usr/lib/libfam.so.0 (0x00007f5b35f38000)
        libncursesw.so.6 => /usr/lib/libncursesw.so.6 (0x00007f5b35ccb000)
        libreadline.so.6 => /usr/lib/libreadline.so.6 (0x00007f5b35a81000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007f5b3577d000)
        libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f5b35579000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007f5b351db000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f5b3613f000)
fdopen commented 8 years ago

libfam is an optional dependency. If libfam is not installed, it won't be used.

Perhaps you've installed omake while libfam was installed and then removed libfam later. Adding a depext won't prevent such problems.

Just try: opam reinstall omake && opam install opium

If it still doesn't work, report the problem upstream: https://github.com/ocaml-omake/omake Or try the latest test version there. Perhaps it's already fixed.

ghost commented 8 years ago

Seems to be the case, I removed libfam and the dependency broke.

Note I tested it using:

opam reinstall omake && opam install opium

I understand this is a corner case, but it would be nice if depext could maybe show all underlying dependencies and which module has them?